• Home
  • History
  • Annotate
  • only in /external/clang/lib/Basic/
History log of /external/clang/lib/Basic/
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
uiltins.cpp
iagnostic.cpp
iagnosticIDs.cpp
ileManager.cpp
ileSystemStatCache.cpp
penMPKinds.cpp
ourceManager.cpp
argetInfo.cpp
argets.cpp
ersion.cpp
irtualFileSystem.cpp
arnings.cpp
6bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89 29-May-2014 Stephen Hines <srhines@google.com> Update Clang for 3.5 rebase (r209713).

Change-Id: I8c9133b0f8f776dc915f270b60f94962e771bc83
ndroid.mk
uiltins.cpp
MakeLists.txt
iagnostic.cpp
iagnosticIDs.cpp
ileManager.cpp
ileSystemStatCache.cpp
dentifierTable.cpp
odule.cpp
penMPKinds.cpp
ourceManager.cpp
argetInfo.cpp
argets.cpp
okenKinds.cpp
irtualFileSystem.cpp
arnings.cpp
651f13cea278ec967336033dd032faef0e9fc2ec 24-Apr-2014 Stephen Hines <srhines@google.com> Updated to Clang 3.5a.

Change-Id: I8127eb568f674c2e72635b639a3295381fe8af82
ndroid.mk
ttributes.cpp
uiltins.cpp
MakeLists.txt
iagnostic.cpp
iagnosticIDs.cpp
ileManager.cpp
ileSystemStatCache.cpp
dentifierTable.cpp
odule.cpp
penMPKinds.cpp
ourceLocation.cpp
ourceManager.cpp
argetInfo.cpp
argets.cpp
okenKinds.cpp
ersion.cpp
irtualFileSystem.cpp
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
dd6669dbb872a69a42a0d8fd77cd48a971cabcc9 09-Dec-2013 Bill Wendling <isanbard@gmail.com> Merging r196724:
------------------------------------------------------------------------
r196724 | tnorthover | 2013-12-08 07:24:55 -0800 (Sun, 08 Dec 2013) | 5 lines

ARM: teach Sema that "r" can match 64-bit values

We already support using "r" on 64-bit values (a GPRPair is
allocated), but Sema doesn't know this yet so issues a warning. This
should fix it.
------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_34@196746 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
5fc0070c015443745ea4705765d4332079a0f95e 03-Dec-2013 Bill Wendling <isanbard@gmail.com> Merging r196115:
------------------------------------------------------------------------
r196115 | joerg | 2013-12-02 08:12:05 -0800 (Mon, 02 Dec 2013) | 2 lines

Assume ARMv6 for NetBSD for now for strex/ldrex.

------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_34@196202 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
85ad3893a967faf9c76571d0991acab7c9c6bf06 02-Dec-2013 Bill Wendling <isanbard@gmail.com> Merging r196114:
------------------------------------------------------------------------
r196114 | joerg | 2013-12-02 08:09:34 -0800 (Mon, 02 Dec 2013) | 2 lines

NetBSD uses long derived size_t / ssize_t in all ARM ABIs.

------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_34@196134 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
604470b7431605cd798a8e20220b730efaf3a7c5 01-Dec-2013 Bill Wendling <isanbard@gmail.com> Merging r195970:
------------------------------------------------------------------------
r195970 | joerg | 2013-11-29 16:38:16 -0800 (Fri, 29 Nov 2013) | 2 lines

NetBSD uses signed wchar_t on ARM platforms.

------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_34@196009 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
287d8b32ee7ee0e65674c433c9fe3bbcf1aa834c 20-Nov-2013 Bill Wendling <isanbard@gmail.com> Merging r195149:
------------------------------------------------------------------------
r195149 | grosbach | 2013-11-19 12:18:39 -0800 (Tue, 19 Nov 2013) | 6 lines

ARM: embedded v7 'darwin' doesn't get min-version defines.

Make sure armv7 doesn't get the iOS deployment version definitions when
it's being used for non-iOS.

rdar://15497681
------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_34@195225 91177308-0d34-0410-b5e6-96231b3b80d8
argets.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
argets.cpp
fb21ecfa483bc679d06e8a21d154684bd5183637 18-Nov-2013 Aaron Ballman <aaron@aaronballman.com> Adding an assert to help catch possible buffer underruns.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195024 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
0de6bc8ea32e2813aac5f98c348ce735a5bdca08 15-Nov-2013 Tom Stellard <thomas.stellard@amd.com> R600: Add processor type for Hawaii

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194751 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f2941ec5bfcce36feffac514582d168b4e0ef811 13-Nov-2013 Reid Kleckner <reid@kleckner.net> Only provide MS builtins when -fms-extensions is on

We already have builtins that are only available in GNU mode, so this
mirrors that.

Reviewers: rsmith

Differential Revision: http://llvm-reviews.chandlerc.com/D2128

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194615 91177308-0d34-0410-b5e6-96231b3b80d8
uiltins.cpp
838f9337a1af51fb02cfe0abeccba5069619cb05 12-Nov-2013 Daniel Sanders <daniel.sanders@imgtec.com> [mips][msa] Enable inlinse assembly for MSA.

Like GCC, this re-uses the 'f' constraint and a new 'w' print-modifier:
asm ("ldi.w %w0, 1", "=f"(result));

Unlike GCC, the 'w' print-modifer is not _required_ to produce the intended
output. This is a consequence of differences in the internal handling of
the registers in each compiler. To be source-compatible between the
compilers, users must use the 'w' print-modifier.

MSA registers (including control registers) are supported in clobber lists.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194476 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1816219b01c744b2500a917348fc5df4447d6849 12-Nov-2013 Robert Lytton <robert@xmos.com> XCore target Type defines.

Change SizeType, PtrDiffType, IntPtrType, WCharType, WIntType
to follow the XMOS llvm-gcc front end's settings.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194461 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
2a7ff77d54c9783eb53a59cd57e9b2330cdd5119 12-Nov-2013 Richard Smith <richard-llvm@metafoo.co.uk> Remove C++11ism.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194446 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.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
iagnosticIDs.cpp
dda91e0c4b794b1054a6672a6267942ec72d387f 11-Nov-2013 Akira Hatanaka <ahatanaka@mips.com> [mips] Partially revert r193640. Stack alignment should not be determined by
the floating point register mode.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194426 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
9b79630004fe0a748e0328a19de25840b37d4aa1 11-Nov-2013 Tim Northover <tnorthover@apple.com> Darwin(ish): we don't want __ARM_EABI__ even on v7a embedded targets.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194408 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
8daa7fe574fcc6b4f64c35516a8cce53c3d044b4 11-Nov-2013 Joerg Sonnenberger <joerg@bec.de> NetBSD 6.99.26 switched to default rounding mode, so adjust
__FLT_EVAL_METHOD__ accordingly. Add test case for this and the SSE2
variances on NetBSD.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194377 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
86250895597e288c86ef08c2e824956ea9835fed 04-Nov-2013 Dmitri Gribenko <gribozavr@gmail.com> Include non-explicit submodules in exported module list

This change fixes Richard's testcase for r193815. Now we include non-explicit
submodules into the list of exports.

The test failed previously because:
- recursive_visibility_a1.inner is not imported (only recursive_visibility_a1 is),
- thus the 'inner' submodule is not showing up in any of the import lists,
- and because of this getExportedModules() is not returning the
correct module set -- it only considers modules that are imported.

The fix is to make Module::getExportedModules() include non-explicit submodules
into the list of exports.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194018 91177308-0d34-0410-b5e6-96231b3b80d8
odule.cpp
a2420960fded369f2ff4127ba0389be4d0e6c0c9 04-Nov-2013 Benjamin Kramer <benny.kra@googlemail.com> Driver: Add support for -march=bdver3 on x86.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193985 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
8b1ab400d40b96f4634eb0c29986218c2905fda4 01-Nov-2013 Richard Smith <richard-llvm@metafoo.co.uk> Simplify computation of visible module set.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193850 91177308-0d34-0410-b5e6-96231b3b80d8
odule.cpp
bc64d35c4151dc34c21d0fc971b3aee0d28d83a3 31-Oct-2013 Dmitri Gribenko <gribozavr@gmail.com> Clang modules: collect exports recursively

This change makes Module::buildVisibleModulesCache() collect exported modules
recursively.

While computing a set of exports, getExportedModules() iterates over the set of
imported modules and filters it. But it does not consider the set of exports
of those modules -- it is the responsibility of the caller to do this.

Here is a certain instance of this issue. Module::isModuleVisible says that
CoreFoundation.CFArray submodule is not visible from Cocoa. Why?

- Cocoa imports Foundation.
- Foundation has an export restriction: "export *".
- Foundation imports CoreFoundation. (Just the top-level module.)
- CoreFoundation exports CoreFoundation.CFArray.

To decide which modules are visible from Cocoa, we collect all exported modules
from immediate imports in Cocoa:

> visibleModulesFro(Cocoa) = exported(Foundation) + exported(CoreData) + exported(AppKit)

To find out which modules are exported, we filter imports according to
restrictions:

> exported(Foundation) = filterByModuleMapRestrictions(imports(Foundation))

Because Foundation imports CoreFoundation (not CoreFoundation.CFArray), the
CFArray submodule is considered not exported from Foundation, and is not
visible from Cocoa (according to Module::isModuleVisible).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193815 91177308-0d34-0410-b5e6-96231b3b80d8
odule.cpp
3bb1b5c953fc38d4b87525258cf27b7c908988b1 31-Oct-2013 Amara Emerson <amara.emerson@arm.com> [AArch64] Add some CPU targets for "generic", A-53 and A-57.

Enables the clang driver to begin targeting specific CPUs. Introduced a
"generic" CPU which will ensure that the optional FP feature is enabled
by default when it gets to LLVM, without needing any extra arguments.
Cortex-A53 and A-57 are also introduced with tests, although backend
handling of them does not yet exist.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193740 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
266998656224d42c29ad9f372f750cc9e1772eaf 30-Oct-2013 Akira Hatanaka <ahatanaka@mips.com> [mips] Delete unused functions.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193674 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
550ed2077e11ac183380478769c8ddc932ce3168 29-Oct-2013 Akira Hatanaka <ahatanaka@mips.com> [mips] Align the stack to 16-bytes for -mfp64.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193640 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
4d1c2364d62fa932fe55b094fbcf594575226d12 29-Oct-2013 Akira Hatanaka <ahatanaka@mips.com> [mips] Move setDescriptionString to base class MipsTargetInfoBase and call it
at the end of handleTargetFeatures.

No intended functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193636 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
423170442b443fd3f2a93dad0d89666b3a85545f 29-Oct-2013 Tom Stellard <thomas.stellard@amd.com> R600: Add Sea Islands GPUs

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193622 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
909f35a884045c658e5c4565499f113ee63dfc1d 29-Oct-2013 Bernard Ogden <bogden@arm.com> ARM: Add -m[no-]crc to dis/enable CRC subtargetfeature from clang

Allow users to disable or enable CRC subtarget feature.

Differential Revision: http://llvm-reviews.chandlerc.com/D2037

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193600 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
5794b53ad5b38b53c9eaf3a172354e63081ceb2f 28-Oct-2013 Richard Smith <richard-llvm@metafoo.co.uk> Allow a new syntax in a module requires-declaration:

requires ! feature

The purpose of this is to allow (for instance) the module map for /usr/include
to exclude <tgmath.h> and <complex.h> when building in C++ (these headers are
instead provided by the C++ standard library in this case, and the glibc C
<tgmath.h> header would otherwise try to include <complex.h>, resulting in a
module cycle).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193549 91177308-0d34-0410-b5e6-96231b3b80d8
odule.cpp
f779e65390ad331ff5ea68de40b0281f607b397c 24-Oct-2013 Bernard Ogden <bogden@arm.com> Add driver support for FP, SIMD and crypto defaults.

Although we wire up a bit for v8fp for macro setting
purposes, we don't set a macro yet. Need to ask list
about that.

Change-Id: Ic9819593ce00882fbec72757ffccc6f0b18160a0

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193367 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
51f997dfc00baa764be5a4308cfbb888974eb449 24-Oct-2013 Bernard Ogden <bogden@arm.com> Clean up char/numeric comparisons in ARM getTargetDefines

Change-Id: Ie07228411b68252adcd5cf80b27ccd2eb3b031d9

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193366 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
c427249cb79b77c3cd7a0855f854d2ff81618ddf 24-Oct-2013 Bernard Ogden <bogden@arm.com> Teach clang driver about Cortex-A53 and Cortex-A57.

Adds some Cortex-A53 strings where they were missing before.
Cortex-A57 is entirely new to clang.

Doesn't touch code only used by Darwin, in consequence of which
one of the A53 lines has been removed.

Change-Id: I5edb58f6eae93947334787e26a8772c736de6483

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193364 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
66b5dac8b70229dfe7c7cc882de21b1265a6cdea 24-Oct-2013 Tim Northover <tnorthover@apple.com> ARM-Darwin: Use the *-*-darwin-eabi triple for v6m & v7m archs

These arch arguments are used for embedded targets (obviously) which need a
different calling convention to iOS.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193328 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
c6c9cf4b186edd8afa8503c58562d445df127ea6 21-Oct-2013 Silviu Baranga <silviu.baranga@arm.com> Set the default hardware division features for ARM cpus. Also set it as default for A32 armv8.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193075 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1db2e279114348d276e2dea03b8d6175743505e7 21-Oct-2013 Silviu Baranga <silviu.baranga@arm.com> Add the __ARM_ARCH_EXT_IDIV__ predefine. It is set to 1 if we have hardware divide in the mode that we are compiling in (depending on the target features), not defined if we don't. Should be compatible with the GCC conterpart. Also adding a -hwdiv option to overide the default behavior.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193074 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
ddb2ad21d2c059b82e2ddbbb5eb8b325944b9970 18-Oct-2013 Simon Atanasyan <simon@atanasyan.com> [Mips] Define __mips_fpr and _MIPS_FPSET macros.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192969 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
3d11cedeb5ed610dbfb0da733d65d8e95ed217da 16-Oct-2013 Eric Christopher <echristo@gmail.com> Rename HandleTargetFeatures->handleTargetFeatures to match
everything else in the class.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192851 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
165432092b7a329d51c32365067237bfdb71267f 16-Oct-2013 Eric Christopher <echristo@gmail.com> Add preprocessor support for powerpc vsx.

The test should be expanded upon for more powerpc checking.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192849 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f217400fd599ad0f7fd72e711f90e7e5a46c3c2f 16-Oct-2013 Eric Christopher <echristo@gmail.com> Fix comments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192847 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
15dbacc7cb0e01256345d85efdf1d43eec71b9f9 16-Oct-2013 Yunzhong Gao <Yunzhong_Gao@playstation.sony.com> Enabling 3DNow! prefetch instruction support for a few AMD processors in the
clang front end. This change will allow the __PRFCHW__ macro to be set on these
processors and hence include prfchwintrin.h in x86intrin.h header. Support for
the intrinsic itself seems to have already been added in r178041.

Differential Revision: http://llvm-reviews.chandlerc.com/D1934



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192829 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
9fcbd5e55a8029a0ca8a5d64457278ec716a8705 10-Oct-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: For 'default' and 'shared' family of
methods, infer their self's type as their result type.
// rdar://15145218


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192377 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
aa58f15d824096639ec2c5dcab903cbdfe0e14b4 07-Oct-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: A typical implementation of
'default' methods in Foundation does not
infer 'instancetype' for methods' result type.
// rdar://15145218


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192129 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
af9454635939bf070733d95d72284494dda6791d 05-Oct-2013 Nick Lewycky <nicholas@mxc.ca> Add support for -mcx16, and predefine __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 when
it is enabled. Also enable it on the same architectures that GCC does.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192045 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
31e7636a957e33fca2874a185f192cedd14c546d 01-Oct-2013 Rafael Espindola <rafael.espindola@gmail.com> Revert commits r190613, r190560 and r190557.

The added a cmake invocation to null builds, making them a lot slower.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191784 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
d195bc38fd424b0c928e3c354038a8ca6e2ccac3 01-Oct-2013 Alexey Bataev <a.bataev@hotmail.com> [OpenMP] Added parsing and semantic analysis for firstprivate clause


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191730 91177308-0d34-0410-b5e6-96231b3b80d8
penMPKinds.cpp
8712ded79d0e80e6a4158682f78626637ad90a7a 01-Oct-2013 Weiming Zhao <weimingz@codeaurora.org> Fix PR 12730: Add _GCC_HAVE_SYNC_COMPARE_AND_SWAP macros for ARM



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191707 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
5ada7a5e9747e03e8c3725b1b4d00e2a9f448e9e 29-Sep-2013 Ed Schouten <ed@80386.nl> Add character set related __STDC_* definitions.

Clang uses UTF-16 and UTF-32 for its char16_t's and char32_t's
exclusively. This means that we can define __STDC_UTF_16__ and
__STDC_UTF_32__ unconditionally.

While there, define __STDC_MB_MIGHT_NEQ_WC__ for FreeBSD. FreeBSD's
wchar_t's don't encode characters as ISO-10646; the encoding depends on
the locale used. Because the character set used might not be a superset
of ASCII, we must define __STDC_MB_MIGHT_NEQ_WC__.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191631 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1b9c5374a3cd33b0e281f494f0e322aef035abca 27-Sep-2013 Benjamin Kramer <benny.kra@googlemail.com> SourceManager: Open code isInMainFile.

- We really shouldn't compute line numbers for every file that is asked if it's
the main file, it destroys the lazy computation.
- Invalid locations are no longer accounted to the main file, no other
functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191535 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
a8f7d9dd926d61c92dbe194e9b6f51a9c015cea5 24-Sep-2013 Yunzhong Gao <Yunzhong_Gao@playstation.sony.com> Adding -mtbm and -mno-tbm command line options to the clang front end for the
x86 TBM instruction set. Also adding a __TBM__ macro if the TBM feature is
enabled. Otherwise there should be no functionality change to existing features.

Phabricator code review is located here: http://llvm-reviews.chandlerc.com/D1693



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191326 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
ddd2dfc1d3f4a36cbe8cd775c588623a17049f9f 24-Sep-2013 Daniel Jasper <djasper@google.com> Module use declarations (II)

Review: http://llvm-reviews.chandlerc.com/D1546.

I have picked up this patch form Lawrence
(http://llvm-reviews.chandlerc.com/D1063) and did a few changes.

From the original change description (updated as appropriate):
This patch adds a check that ensures that modules only use modules they
have so declared. To this end, it adds a statement on intended module
use to the module.map grammar:

use module-id

A module can then only use headers from other modules if it 'uses' them.
This enforcement is off by default, but may be turned on with the new
option -fmodules-decluse.

When enforcing the module semantics, we also need to consider a source
file part of a module. This is achieved with a compiler option

-fmodule-name=<module-id>.

The compiler at present only applies restrictions to the module directly
being built.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191283 91177308-0d34-0410-b5e6-96231b3b80d8
odule.cpp
fc12c4aa20876bdf91bff98dc50eb68b4dd04b80 24-Sep-2013 Simon Atanasyan <simon@atanasyan.com> [Mips] Support -mnan=2008 option. Define "__mips_nan2008" macros and pass
this option to the assembler.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191282 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
bbac9aacc4742102765c1538130d09c079b14c71 21-Sep-2013 Petar Jovanovic <petar.jovanovic@imgtec.com> [Mips] Allocate NaClTargetInfo for MIPSEL NaCl

A patch to AllocateTarget function to recognize llvm::Triple::NaCl for
MIPSEL and return NaClTargetInfo. Additional test has been added to check
if the expected macros get defined.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191124 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
b83f5a77335ca8a5b41ba4e17aa8d4bb6248c1e4 19-Sep-2013 Ben Langmuir <ben.langmuir@intel.com> Add C intrinsics for Intel SHA Extensions

Intrinsics added shaintrin.h, which is included from x86intrin.h if __SHA__ is
enabled. SHA implies SSE2, which is needed for the __m128i type.

Also add the -msha/-mno-sha option.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190999 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
b22352e7c4eb3e1b7880e6754f96f95ee6d6cf84 19-Sep-2013 Craig Topper <craig.topper@gmail.com> Use curly braces all the way through long if/else chain for consistency and readability.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190982 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
a6cbc2701237c89a8d6fd9897066ebca798664dc 19-Sep-2013 Craig Topper <craig.topper@gmail.com> Disabling sse2 should disable aes and pclmul support.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190977 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
a346eb1188419d3f1698092edfbd66890b74163c 18-Sep-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: For consistency, also infer
'instancetype' for known family of methods
with related result type; such as 'init'
methods. // rdar://14987948


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190956 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
520ec1e553ffa955276462e4230c1b128fa433af 18-Sep-2013 Joey Gouly <joey.gouly@arm.com> [ARMv8] Add builtins for CRC instructions.

Patch by Bradley Smith!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190931 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
85bfef69f96425b07a300e513797953165434cb8 17-Sep-2013 Craig Topper <craig.topper@gmail.com> Push contents of X86TargetInfo::setFeatureEnabled down to a static function called by the virtual version and all the places in getDefaultFeatures. This way getDefaultFeatures doesn't make so many virtual calls.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190847 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
319d81f23504b61d8c31d0551af9b31f0c61ef8b 17-Sep-2013 Craig Topper <craig.topper@gmail.com> Mark setSSELevel/setMMXLevel/setXOPLevel as static since they don't access anything in the class.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190846 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
2440fb1f91557912f8c43cb72201170254ae09f4 16-Sep-2013 Amara Emerson <amara.emerson@arm.com> Add error checking to reject neon_vector_type attribute on targets without NEON.

Patch by Artyom Skrobov.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190801 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
585c84c5afd91f57b84b0236aa28620438cfe636 16-Sep-2013 Benjamin Kramer <benny.kra@googlemail.com> Add a define for the ObjFW runtime ABI version.

This removes __has_feature(objc_msg_lookup_stret), as it is not required
anymore after this patch.

Patch by Jonathan Schleifer!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190791 91177308-0d34-0410-b5e6-96231b3b80d8
bjCRuntime.cpp
84f007b17399ef90f234ef0cef6e3f2495a12f10 16-Sep-2013 Craig Topper <craig.topper@gmail.com> Make F16C feature imply AVX. Matches GCC behavior.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190776 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
57b1da1588a3f5785ad8bd5d9f2d795d685e1058 14-Sep-2013 Cameron Esfahani <dirty@apple.com> Clean up some Triple usage in clang.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190737 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
c57ea687835fa5c6270b6275b98e2010fae41a00 13-Sep-2013 Preston Gurd <preston.gurd@intel.com> Update Atom Silvermont (SLM) support by adding enabled features.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190718 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
5df4045db5e10408da7e33b0df7df553da2fee68 13-Sep-2013 Renato Golin <renato.golin@linaro.org> Add more Cortex CPUs and tests

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190703 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1302f9fec0928a0f3d8c3485901a0a8c99157c24 13-Sep-2013 Renato Golin <renato.golin@linaro.org> Fix Neon detection for Cortex-A class, plus adds some more CPUs to default features

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190702 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1eef85246b411b55c493098266746d0d83c241ea 13-Sep-2013 David Tweed <david.tweed@arm.com> Certain multi-platform languages, such as OpenCL, have the concept of
address spaces which is both (1) a "semantic" concept and
(2) possibly a hardware level restriction. It is desirable to
be able to discard/merge the LLVM-level address spaces on arguments for which
there is no difference to the current backend while keeping
track of the semantic address spaces in a funciton prototype. To do this
enable addition of the address space into the name-mangling process. Add
some tests to document this behaviour against inadvertent changes.

Patch by Michele Scandale!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190684 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
17e95c8aac18cac3e040079a120b4a129975ae9d 12-Sep-2013 Jordan Rose <jordan_rose@apple.com> [CMake] Put controversial always-recheck-revision-number behind an option.

CMake does not have the ability to perform actions before calculating
dependencies, so it can't know whether it needs to rebuild clangBasic
to update for a new revision number. CLANG_ALWAYS_CHECK_VC_REV (off by
default) will cause clangBasic to always be dirty by deleting the
generated SVNVersion.inc after use; otherwise, SVNVersion.inc will
always be updated, but only included in the final binary when clangBasic
is rebuilt.

It'd be great to find a better way to do this, but hopefully this is
still an improvement over the complete lack of version information before.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190613 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
23443cd5d1be4a0fbfdc4f99173449c9f1a3dcbe 12-Sep-2013 Jordan Rose <jordan_rose@apple.com> [CMake] Fix repository version checking dependencies harder.

Just always regenerate SVNVersion.inc. Don't worry about it not changing.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190560 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
7f9a8e9c88cd93b98b8871363717269f43ffb8aa 12-Sep-2013 Jordan Rose <jordan_rose@apple.com> [CMake] Always include the Clang repo version, just like the autoconf build.

Now that LLVM's helper script GetSVN.cmake actually works consistently,
there's no reason not to use it. This does mean that the clangBasic target
is potentially always dirty, because CMake-generated projects do not
necessarily recalculate dependencies after running each target.

This should end the issues of the AST format changing and breaking old
module files; CMake-Clang should now detect that the version changed just
like Autoconf-Clang has.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190557 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
56bed97d750b5a67707f266cc06e641ac5222612 11-Sep-2013 Craig Topper <craig.topper@gmail.com> Fix a bug where -msse followed by -mno-sse would leave MMX enabled.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190496 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
3f46e6f45907b7004e2c8dfec1a84877d6d262d6 10-Sep-2013 Alexey Samsonov <samsonov@google.com> Delete unused static class members

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190394 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1e24463067cd8d270e67cc926341e43e6b6f019a 10-Sep-2013 David Tweed <david.tweed@arm.com> Fix minor coding style issue in r190296 pointed out by Richard Smith.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190390 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
89a5e796bedcfbf6afd03654e75b9f7aa0a0b4f4 10-Sep-2013 Craig Topper <craig.topper@gmail.com> Separate popcnt and sse4.2 feature control somewhat to match gcc behavior.

Enabling sse4.2 will implicitly enable popcnt unless popcnt is explicitly disabled.
Disabling sse4.2 will not disable popcnt if popcnt is explicitly enabled.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190387 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
8bc56022db2d9b16aab25ce3b6fccda9dd8991fc 09-Sep-2013 David Tweed <david.tweed@arm.com> The OpenCL standard specifies the sizes and alignments of various types than other C-family
languages, as well as specifying errno is not set by the math functions. Make the
clang front-end set those appropriately when the OpenCL language option is set.

Patch by Erik Schnetter!



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190296 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
35451d9a00b2a3b40689f6e4d4e259a6d786b395 09-Sep-2013 Stepan Dyatkovskiy <stpworld@narod.ru> Additional fix for PR16752 and for commit 190044:
-- For TargetInfo::getRealTypeByWidth also added support for IEEEQuad float type.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190294 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
325047fdb5770c97149a977b64ac6cce5c3be427 06-Sep-2013 David Blaikie <dblaikie@gmail.com> Unbreak the Clang -Werror build after r190183.

Best guess at the right answer here - no guarantees of fitness for any
particular purpose.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190203 91177308-0d34-0410-b5e6-96231b3b80d8
penMPKinds.cpp
deb77991a2bef594285864d72cb2bf90dec706ff 05-Sep-2013 Sylvestre Ledru <sylvestre@debian.org> Fix the profile of the function (fix commit 190048)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190051 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
3309a78379839bf877067f4a54b1413448d22bad 05-Sep-2013 Sylvestre Ledru <sylvestre@debian.org> Fix bug #17104 - Target info for GNU/kFreeBSD were missing.
As a result, Clang doesn't define the pre-processor macros that are expected
on this platform.

Thanks to Robert Millan for the patch



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190048 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
7b7bef1ec355fb46643349d77c266b913f36b656 05-Sep-2013 Stepan Dyatkovskiy <stpworld@narod.ru> Add new methods for TargetInfo:
getRealTypeByWidth and getIntTypeByWidth
for ASTContext names are almost same(invokes new methods from TargetInfo):
getIntTypeForBitwidth and getRealTypeForBitwidth.

As first commit for PR16752 fix: 'mode' attribute for unusual targets doesn't work properly
Description:
Troubles could be happened due to some assumptions in handleModeAttr function (see SemaDeclAttr.cpp).
For example, it assumes that 32 bit integer is 'int', while it could be 16 bit only.
Instead of asking target: 'which type do you want to use for int32_t ?' it just hardcodes general opinion. That doesn't looks pretty correct.
Please consider the next solution:
1. In Basic/TargetInfo add getIntTypeByWidth and getRealTypeByWidth virtual methods. By default current behaviour could be implemented here.
2. Fix handleModeAttr according to new methods in TargetInfo.
This approach is implemented in the patch attached to this post.

Fixes:
1st Commit (Current): Add new methods for TargetInfo:
getRealTypeByWidth and getIntTypeByWidth
for ASTContext names are almost same(invokes new methods from TargetInfo):
getIntTypeForBitwidth and getRealTypeForBitwidth

2nd Commit (Next): Fix SemaDeclAttr, handleModeAttr function.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190044 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
b98ce37c69b42569d15848978dac24106f842e14 30-Aug-2013 Benjamin Kramer <benny.kra@googlemail.com> Add support for -march=slm, aka Intel Atom Silvermont.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189670 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
e8519c31a6ef853b627d557702ac1890f18ce2c9 30-Aug-2013 Charles Davis <cdavis5x@gmail.com> Add ms_abi and sysv_abi attribute handling.

Based on a patch by Benno Rice!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189644 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
d0f2921c3211299a80c043a3251e6b34dddba061 29-Aug-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: remove dead code.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189592 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
46c8fca7b32a7613f9b37b46c381dd064b773b30 29-Aug-2013 Craig Topper <craig.topper@gmail.com> Make getDiagnosticsInGroup helper method a static function in the cpp file and move the WarningOption struct into an anonymous namespace instead of clang namespace since it no longer needs to be forward declared in the header.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189569 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.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
iagnosticIDs.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
iagnosticIDs.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
iagnosticIDs.cpp
ef072033876e295ec5d3402f8730a3ae358ad815 28-Aug-2013 Reid Kleckner <reid@kleckner.net> Delete CC_Default and use the target default CC everywhere

Summary:
Makes functions with implicit calling convention compatible with
function types with a matching explicit calling convention. This fixes
things like calls to qsort(), which has an explicit __cdecl attribute on
the comparator in Windows headers.

Clang will now infer the calling convention from the declarator. There
are two cases when the CC must be adjusted during redeclaration:
1. When defining a non-inline static method.
2. When redeclaring a function with an implicit or mismatched
convention.

Fixes PR13457, and allows clang to compile CommandLine.cpp for the
Microsoft C++ ABI.

Excellent test cases provided by Alexander Zinenko!

Reviewers: rsmith

Differential Revision: http://llvm-reviews.chandlerc.com/D1231

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189412 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
9a3d2bd6da5028567cbfda65bec886b1bcea45e2 27-Aug-2013 Tom Stellard <thomas.stellard@amd.com> R600: Add local address pointer size to DataLayout

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189302 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
81cde9e8915486f83c933d5b148d26b75a338455 23-Aug-2013 Rafael Espindola <rafael.espindola@gmail.com> Update now that llvm uses the same feature names as the driver.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189142 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
5389b84a780ac17b63c10ad97cd5e3aaa41595b7 21-Aug-2013 Rafael Espindola <rafael.espindola@gmail.com> Move -mfpmath handling to -cc1 and implement it for x86.

The original idea was to implement it all on the driver, but to do that the
driver needs to know the sse level and to do that it has to know the default
features of a cpu.

Benjamin Kramer pointed out that if one day we decide to implement support for
' __attribute__ ((__target__ ("arch=core2")))', then the frontend needs to
keep its knowledge of default features of a cpu.

To avoid duplicating which part of clang handles default cpu features,
it is probably better to handle -mfpmath in the frontend.

For ARM this patch is just a small improvement. Instead of a cpu list, we
check if neon is enabled, which allows us to reject things like

-mcpu=cortex-a9 -mfpu=vfp -mfpmath=neon

For X86, since LLVM doesn't support an independent ssefp feature, we just
make sure the selected -mfpmath matches the sse level.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188939 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
078a333b7e61bb529f8a65181d100ea561f9f528 21-Aug-2013 Rafael Espindola <rafael.espindola@gmail.com> Remove dead code.

setFeatureEnabled is never called with "32" or "64". The driver never passes it
and mips' getDefaultFeatures sets the Features map directly.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188913 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
bc1e54587bf1ed18abadc566423777ddb3be78ac 21-Aug-2013 Rafael Espindola <rafael.espindola@gmail.com> Move the logic for selecting the last feature in the command line to the driver.

This is a partial revert of r188817 now that the driver handles -target-feature
in a single place.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188910 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
29f26de50897f88eeee343c70b10fb33122f4c74 21-Aug-2013 Rafael Espindola <rafael.espindola@gmail.com> Don't disable SSE4A when disabling AVX.

Thanks for Craig Topper for noticing it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188902 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
bca2c4fab5c67a9121c96f15fb5caf09c25cf8f6 21-Aug-2013 Craig Topper <craig.topper@gmail.com> Add avx512cd, avx512er, avx512pf feature flags and enable them on KNL CPU.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188867 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
b7a95d2941869f2dfd0d2f0e805f794b46dd4b55 21-Aug-2013 Craig Topper <craig.topper@gmail.com> Replace avx-512 with avx512f to match llvm side and what gcc patches appear to be using.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188860 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
c84ed54f9786638c228fdc9b4db9920fa676d48d 20-Aug-2013 Rafael Espindola <rafael.espindola@gmail.com> Centralize the logic for handling -m* options and fix pr16943.

This moves the logic for handling -mfoo -mno-foo from the driver to -cc1. It
also changes -cc1 to apply the options in order, fixing pr16943.

The handling of -mno-mmx -msse is now an explicit special case.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188817 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
ade7cd45d5bf510c8599b805691e6402edb0d203 20-Aug-2013 Rafael Espindola <rafael.espindola@gmail.com> Remove duplicated error checking.

The driver validates its options, so we don't need to redo the work in
"clang -cc1".

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188806 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
020b1e28b281d5242db9c8d9d939a71fa7deb929 20-Aug-2013 Rafael Espindola <rafael.espindola@gmail.com> Remove dead code.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188802 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f6fe72b70706bd301142923fee5ecca42cd3e8a1 20-Aug-2013 Rafael Espindola <rafael.espindola@gmail.com> Refactor the x86 feature handling.

This removes the very long chains of
Feature["avx"] = Feature["sse42"] = ... = true;

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188799 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
42f98732d6f14584522304cff570b7ee24660c54 20-Aug-2013 Craig Topper <craig.topper@gmail.com> Change 'avx512' to 'avx-512' to match llvm backend.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188762 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
10c2c68e5610a58f3dbd2daed303b21e15a83720 20-Aug-2013 Craig Topper <craig.topper@gmail.com> Add AVX-512 feature flag and knl cpu to clang.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188758 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
ed218d05aa3d429208b0eb2204707c75b87d2fee 20-Aug-2013 Craig Topper <craig.topper@gmail.com> Revert r188756 because some other changes snuck in with it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188757 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
dab7845798d673cabeef792451354aeb394cdd54 20-Aug-2013 Craig Topper <craig.topper@gmail.com> Add AVX-512 feature flag and knl cpu to clang.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188756 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
d588f5c448bd0f38b3950c7fb0571e1875cdc505 19-Aug-2013 Bob Wilson <bob.wilson@apple.com> Bump the value of the __APPLE_CC__ predefined macro up to 6000.

The previous value was set to match some ancient version of Apple's GCC.
The value should be higher than anything used by Apple's GCC, but we don't
intend for this value to be updated in the future. We have other macros to
identify compiler versions. <rdar://problem/14749599>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188700 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
5f15f4daf0e225ea8463fe2ef522c009c95ffc9c 13-Aug-2013 Robert Lytton <robert@xmos.com> Add XCore target

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188258 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
c613b67f4f3e5d11d6af6426fd9b8b6a197d2b6b 12-Aug-2013 Jack Carter <jack.carter@imgtec.com> [Mips] MSA frontend option support

This patch adds -mmsa and -mno-msa to the options supported by
clang to enable and disable support for MSA.

When MSA is enabled, a predefined macro '__mips_msa' is defined to 1.

Patch by Daniel Sanders


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188184 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
82ccd75a0358d6f5d5ed43e34ef7590eb6edf37c 09-Aug-2013 Benjamin Kramer <benny.kra@googlemail.com> Remove "static" on simple temporary StringRef.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188088 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
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
8d3794e06a63578093bd71c3c2520bd01e6197a3 02-Aug-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: Add another family of factory
methods which can be migrated to instancetype.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187672 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
f647b69147c6e640bbccf501783fafc495bbefb2 02-Aug-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator: Fixes public buildbot failures,
in my previous patch which was reverted in r187657


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187661 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
6803dbe1ec26539395951b75acbe595ad3e8cc8e 02-Aug-2013 Fariborz Jahanian <fjahanian@apple.com> revert patch I added in r187655. It still breaks public
buildbot.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187657 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
906c7f78ee9026c1dc40e062667341f1dd194959 02-Aug-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migration. Check-in patch reverted in r187634.
Also removed check for "NS" prefix for class name.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187655 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
cd683986e991f0e60afd6bc6f336cfc1fd844193 02-Aug-2013 Rafael Espindola <rafael.espindola@gmail.com> Revert "ObjectiveC migrator. Migrate to instancetype return type for mehods with certain prefix selector matching their class names' suffix."

This reverts commit r187626.

It is breaking the bots.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187634 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
59944677b0576c19a08db92a6b45619077a00baa 02-Aug-2013 Fariborz Jahanian <fjahanian@apple.com> ObjectiveC migrator. Migrate to instancetype return type
for mehods with certain prefix selector matching their class names'
suffix.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187626 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
0fda0f75f053ad9afdb2bb8d4ea72c5e6a49d657 01-Aug-2013 Rafael Espindola <rafael.espindola@gmail.com> Use llvm::sys::fs::UniqueID for windows and unix.

This unifies the unix and windows versions of FileManager::UniqueDirContainer
and FileManager::UniqueFileContainer by using UniqueID.

We cannot just replace "struct stat" with llvm::sys::fs::file_status, since we
want to be able to construct fake ones, and file_status has different members
on unix and windows.

What the patch does is:

* Record only the information that clang is actually using.
* Use llvm::sys::fs::status instead of stat and fstat.
* Use llvm::sys::fs::UniqueID
* Delete the old windows versions of UniqueDirContainer and
UniqueFileContainer since the "unix" one now works on windows too.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187619 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
ileSystemStatCache.cpp
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
argets.cpp
c8051e6d276b916f4a4244ad353c5a9c1d2c58e4 30-Jul-2013 Alexander Kornienko <alexfh@google.com> Simplified SourceManager::translateLineCol a bit.

Reviewers: rsmith

Reviewed By: rsmith

CC: cfe-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D1183

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187386 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
4488835d1c78221553909447cf87d7e4ff7f99fb 29-Jul-2013 Rafael Espindola <rafael.espindola@gmail.com> Update for llvm api change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187379 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
3dadc85330d8f548b49f97d7e2fa62c73f7463dd 29-Jul-2013 Rafael Espindola <rafael.espindola@gmail.com> Convert a use of status with llvm::sys::fs::getUniqueID.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187367 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
aefb1d3312a63ac8d289a2e84747fe61a7f61823 29-Jul-2013 Rafael Espindola <rafael.espindola@gmail.com> Convert a use of stat with sys::fs::status.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187364 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
146d57fd5135a134bcdaaf402157c070cde9e4a1 29-Jul-2013 Rafael Espindola <rafael.espindola@gmail.com> Fix handling of "clang c:foo"

On windows, c:foo is a valid file path, but stat fails on just "c:". This
causes a problem for clang since its file manager wants to cache data about
the parent directory.

There are refactorings to be done in here, but this gives clang the correct
behavior and testing first.

Patch by Yunzhong Gao!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187359 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
ea7fb0ce25acc04664a2e7c2b24af03cef2c0d1f 26-Jul-2013 Bill Schmidt <wschmidt@linux.vnet.ibm.com> [PowerPC] Support powerpc64le as a syntax-checking target.

This patch provides basic support for powerpc64le as an LLVM target.
However, use of this target will not actually generate little-endian
code. Instead, use of the target will cause the correct little-endian
built-in defines to be generated, so that code that tests for
__LITTLE_ENDIAN__, for example, will be correctly parsed for
syntax-only testing. Code generation will otherwise be the same as
powerpc64 (big-endian), for now.

The patch leaves open the possibility of creating a little-endian
PowerPC64 back end, but there is no immediate intent to create such a
thing.

The new test case variant ensures that correct built-in defines for
little-endian code are generated.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187180 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
b775100fea6d8955149897dae1adca50ca471d17 26-Jul-2013 Richard Smith <richard-llvm@metafoo.co.uk> When we perform dependent name lookup during template instantiation, it's not
sufficient to only consider names visible at the point of instantiation,
because that may not include names that were visible when the template was
defined. More generally, if the instantiation backtrace goes through a module
M, then every declaration visible within M should be available to the
instantiation. Any of those declarations might be part of the interface that M
intended to export to a template that it instantiates.

The fix here has two parts:

1) If we find a non-visible declaration during name lookup during template
instantiation, check whether the declaration was visible from the defining
module of all entities on the active template instantiation stack. The defining
module is not the owning module in all cases: we look at the module in which a
template was defined, not the module in which it was first instantiated.

2) Perform pending instantiations at the end of a module, not at the end of the
translation unit. This is general goodness, since it significantly cuts down
the amount of redundant work that is performed in every TU importing a module,
and also implicitly adds the module containing the point of instantiation to
the set of modules checked for declarations in a lookup within a template
instantiation.

There's a known issue here with template instantiations performed while
building a module, if additional imports are added later on. I'll fix that
in a subsequent commit.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187167 91177308-0d34-0410-b5e6-96231b3b80d8
odule.cpp
7185d6272b8dc75d5492a6ea0ed43d7631554b61 25-Jul-2013 Rafael Espindola <rafael.espindola@gmail.com> Remove the mblaze backend from clang.

Approval in here http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-July/064169.html

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187143 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
65f1a4c931bc17e51c751a5e9c6a71a9e52d5b8c 24-Jul-2013 Fariborz Jahanian <fjahanian@apple.com> Objective-C migrator: some cleanup.
Expose static type of init/alloc/retain with
instance type as well. Ad-hoc cases are coming
next.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187068 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
11638f7b922aa0182ab2028ec819001ed2fe8085 24-Jul-2013 Fariborz Jahanian <fjahanian@apple.com> ObjC migrator: more knobs toward doing
instancetype migration.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187000 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
8d09216f13478b20f9d9088af22146e28c0cc4ce 23-Jul-2013 Fariborz Jahanian <fjahanian@apple.com> ObjC migrator: Define family of methods
which are candidate for migrating to
'instancetype'. wip.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186981 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
264d206244bde858471e4b6211aeba28fd8ce7cb 23-Jul-2013 Eli Bendersky <eliben@google.com> Add a -fno-math-builtin option to the Clang -cc1


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186899 91177308-0d34-0410-b5e6-96231b3b80d8
uiltins.cpp
8bfffa51d773d2411cf7b8ac513ef1f50e1a4773 21-Jul-2013 Craig Topper <craig.topper@gmail.com> Replace 'unsigned short' with 'uint16_t' in a packed data structure for consistency with other fields and to be explicit about bit count.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186796 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
cbfb8d7ca40975acfa3382f5f62c40965fe316c4 21-Jul-2013 Craig Topper <craig.topper@gmail.com> Revert r186649 because it wasn't unnecessary and add a comment.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186795 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
cfaa5525b8eea6c5f7767010e04e323f76bed1ab 20-Jul-2013 David Majnemer <david.majnemer@gmail.com> DiagnosticIDs: Forbid Diag ID from being valid

Diag ID is used throughout clang as a sentinel id meaning "this is an
invalid diagnostic id." Confusingly, Diag ID maps to a valid, usable,
diagnostic id. Instead, start diagnostic ids at ID one.

Incidently, remove an unused element from StaticDiagInfo.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186760 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
5c92b9ab4e4dce3233ea3e400a02c443f9afd372 19-Jul-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com> [SystemZ] Add -march= command-line option


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186694 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
a4f5252bfb766c29e8a0de7500870946d6f9354c 19-Jul-2013 Craig Topper <craig.topper@gmail.com> Remove unnecessary IsFirst variable from debug codde in GetDiagInfo.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186649 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
4fa7eab771ab8212e1058bd1a91061ff120c8fbb 19-Jul-2013 Alexey Bataev <a.bataev@hotmail.com> OpenMP: basic support for #pragma omp parallel


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186647 91177308-0d34-0410-b5e6-96231b3b80d8
penMPKinds.cpp
d965f95daa97097c8ddc5e1165ceae585a888719 16-Jul-2013 Rafael Espindola <rafael.espindola@gmail.com> Update for llvm API change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186448 91177308-0d34-0410-b5e6-96231b3b80d8
ileSystemStatCache.cpp
b960232518a1cd79c5f64ab5ef54c88e34660191 15-Jul-2013 Craig Topper <craig.topper@gmail.com> Use llvm::array_lengthof to replace sizeof(array)/sizeof(array[0]).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186300 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
466877a29a6b7549b8b1bd5b59df58ee79cc5f46 14-Jul-2013 Craig Topper <craig.topper@gmail.com> Replace C++0x in a comment with C++11

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186287 91177308-0d34-0410-b5e6-96231b3b80d8
peratorPrecedence.cpp
97a03cf921ccc16ef9d16d965a5ef28631090f6a 11-Jul-2013 Eli Bendersky <eliben@google.com> Simplify GetBuiltinNames by hoising the NoBuiltins argument out of it.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186106 91177308-0d34-0410-b5e6-96231b3b80d8
uiltins.cpp
163fbf810eaffc2c7b0170d91b6196b032911957 08-Jul-2013 Craig Topper <craig.topper@gmail.com> Use SmallVectorImpl::reverse_iterator instead of SmallVector to avoid specifying the vector size.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185784 91177308-0d34-0410-b5e6-96231b3b80d8
odule.cpp
09d19efaa147762f84aed55efa7930bb3616a4e5 04-Jul-2013 Craig Topper <craig.topper@gmail.com> Use SmallVectorImpl instead of SmallVector for iterators and references to avoid specifying the vector size unnecessarily.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185610 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
b1baad643c287a3656e9bbda08aab143e6c00873 03-Jul-2013 Bill Schmidt <wschmidt@linux.vnet.ibm.com> [PowerPC] FreeBSD does not require f128 in its data layout string.

Long double is 64 bits on FreeBSD PPC, so the f128 entry is superfluous.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185582 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
b2f6f4764e4d7da70b9ed99aa5bbb346018feedc 03-Jul-2013 Roman Divacky <rdivacky@freebsd.org> Dont define __LONG_DOUBLE_128__ unless LongDoubleWidth is really 128bits width.
It's not the case on ie. FreeBSD.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185572 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
18a295d96d66c2d99b089882366966e460ed5072 01-Jul-2013 Anton Korobeynikov <asl@math.spbu.ru> Fix MSP430 builtin types.

Patch by Job Noorman!



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185362 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
9df0823a4b82794f573e333115ad4dfff3ab0a34 29-Jun-2013 Benjamin Kramer <benny.kra@googlemail.com> Driver: Push triple objects around instead of going to std::string all the time.

No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185261 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
cbed3bfe79bbd16ced68078c7385bd21151f44cd 27-Jun-2013 Joey Gouly <joey.gouly@arm.com> Add support for passing v8fp options via -mfpu.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185075 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
4ec8d5b63d3e2a2c0d9f35243e5f798a89cd97bd 26-Jun-2013 Joey Gouly <joey.gouly@arm.com> Add support for passing '-target armv8' through the Driver.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184970 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
c6fa1153f882c01decb676ca1208705ae2e2508a 25-Jun-2013 Chandler Carruth <chandlerc@gmail.com> Fix a couple of PPC predefined macros that I spotted while driving by
this code. These aren't technically standard predefines for the platform
but apparantly lots of folks use them as they show up within LLVM's own
codebase. ;] This may even fix some self host issues w/ the JIT!!!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184830 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
0ac428eb8ae01995d70a8704862aafaea7c16c53 21-Jun-2013 Justin Holewinski <jholewinski@nvidia.com> [NVPTX] Add NVPTX register constraints

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184578 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
bc3f628815b3841dc99109e7f67f9afa7793bc94 20-Jun-2013 Lawrence Crowl <crowl@google.com> This patch adds new private headers to the module map. Private
headers may be included from within the module, but not from outside
the module.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184471 91177308-0d34-0410-b5e6-96231b3b80d8
odule.cpp
e4bce7a4250e3d646ceab372ebed71ca7e79cf28 18-Jun-2013 Bob Wilson <bob.wilson@apple.com> size_t on Darwin AAPCS targets is "unsigned long". <rdar://problem/14136459>

Some embedded targets use ARM's AAPCS with iOS header files that define size_t
as unsigned long, which conflicts with the usual AAPCS definition of size_t
as unsigned int.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184171 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
e1e03424469ac00811f70ff17b4441ad5c75dff6 17-Jun-2013 Rafael Espindola <rafael.espindola@gmail.com> Use atomic instructions on Bitrig armv6. Patch by Patrick Wildt.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184113 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
04491635b1b497c08f6b04afbf83887718a6d667 15-Jun-2013 Ed Schouten <ed@80386.nl> Emit native implementations of atomic operations on FreeBSD/armv6.

Just like on Linux, FreeBSD/armv6 assumes the system supports
ldrex/strex unconditionally. It is also used by the kernel. We can
therefore enable support for it, like we do on Linux.

While there, change one of the unit tests to explicitly test against
armv5 instead of armv7, as it actually tests whether libcalls are
emitted.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184040 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
2049840b0ffe8ee4bf39051cfa8ca08440c8f667 12-Jun-2013 Stephen Hines <srhines@google.com> Merge commit '1342a4ef62dd7b839c6f09348b246a4f00282f29' into merge_20130612
7044668ecb518496e463ea2dacae100d4badfd19 10-Jun-2013 Adrian Prantl <aprantl@apple.com> cleanup (address some more review comments for r183474):
- reduce default buffer size to 64, which will still be large enough to
hold any property names found in the wild.
- get rid of the /*static*/ comments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183697 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
80e8ea92d6dcaa05165dcb4730485db82dcd4629 08-Jun-2013 Adrian Prantl <aprantl@apple.com> address some comments on r183474:
- factor the name construction part out from constructSetterName
- rename constructSetterName to the more appropriate constructSetterSelector

no functionality change intended.
rdar://problem/14035789

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183582 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
4ff3225c1f343c3e0d461a0e387c7c6012cff5ba 07-Jun-2013 Argyrios Kyrtzidis <akyrtzi@gmail.com> Thread the 'Invalid' out parameter through SourceManager::getSLocEntry() and callees of SourceManager::getSLocEntryByID().

Also add an 'Invalid' check in SourceManager::computeMacroArgsCache().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183538 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
221a8908e4521de533bace49566b5281df9b1924 04-Jun-2013 Bob Wilson <bob.wilson@apple.com> Do not report -Wasm-operand-widths for ARM output operands. <rdar://14050337>

We're getting reports of this warning getting triggered in cases where it
is not adding any value. There is no asm operand modifier that you can use
to silence it, and there's really nothing wrong with having an LDRB, for
example, with a "char" output.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183172 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
c89f02afb018316a0c36bf62b2cb75d420f2fff3 31-May-2013 Benjamin Kramer <benny.kra@googlemail.com> Disable non-standard library builtins in non-gnu language modes.

Fixes PR16138.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183015 91177308-0d34-0410-b5e6-96231b3b80d8
uiltins.cpp
45e1f0e3e7a2030e2e95863cf2bcceb7eb2476ff 25-May-2013 Argyrios Kyrtzidis <akyrtzi@gmail.com> Make isBeforeInTranslationUnit consistent in the face of failures to get a valid FileID (V2).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182698 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
ecdbbfa1cd26c0b0f322366973c7dae51c1e83df 25-May-2013 Argyrios Kyrtzidis <akyrtzi@gmail.com> Make isBeforeInTranslationUnit consistent in the face of failures to get a valid FileID.

Suggested by Jordan.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182695 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
5b8e132a9ab2232fae55ee481bf4901b0a7005da 25-May-2013 Argyrios Kyrtzidis <akyrtzi@gmail.com> Add some safety checks in a couple of SourceManager functions.

This is to address crash in rdar://13932308

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182681 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
9779fdd271bb6a938bdee93f901e4ef7b1a88610 24-May-2013 Michael J. Spencer <bigcheesegs@gmail.com> Replace Count{Leading,Trailing}Zeros_{32,64} with count{Leading,Trailing}Zeros.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182675 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
5ac8c4f449e291d5a1a34777e58f4218794f4646 19-May-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> OpenBSD/sparc64 uses long long for int64_t and intmax_t.

Other operating systems, including FreeBSD and NetBSD, use long.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182215 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
c50c6ff49aa3648ae031349de6f09439f52425f0 16-May-2013 Argyrios Kyrtzidis <akyrtzi@gmail.com> [Lexer] Improve Lexer::getSourceText() when the given range deals with function macro arguments.

This is a modified version of a patch by Manuel Klimek.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182055 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
b5afadd210609294c9c8ec6a9456b1cf53eff690 16-May-2013 David Fang <fang@csl.cornell.edu> fix PR 15726: ptrdiff_t should be int on PowerPC Darwin

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182029 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
fcec0c991edbb011a1eeb85d8de836502f799aed 15-May-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Use correct types for SPARC v9.

It's an LP64 platform.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181867 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
69db555a7a4d0aa11d65001ffc25669c354a5de0 14-May-2013 Rafael Espindola <rafael.espindola@gmail.com> Use atomic instructions on linux thumb v7.

This matches gcc's behaviour. The patch also explicitly parses the version so
that this keeps working when we add support for v8.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181750 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
620c0afe5ea7185688d066de9e3b3680067934d3 13-May-2013 Rafael Espindola <rafael.espindola@gmail.com> Use atomic instructions on ARM linux.

This is safe given how the pre-v6 atomic ops funcions in libgcc are
implemented.

This fixes pr15429.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181728 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
6af701f29be43e49a25ab098c79940ae4cbb69c7 13-May-2013 Alexey Bataev <a.bataev@hotmail.com> OpenMP threadprivate with qualified names.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181683 91177308-0d34-0410-b5e6-96231b3b80d8
penMPKinds.cpp
b491e684395ee19123abdd73b75776fea966d8cf 03-May-2013 Stephen Hines <srhines@google.com> Update Clang for merge to r180944.

Change-Id: Ic42c9b2576c8da6a73092734c392ef5b3cf949c1
ndroid.mk
b8409215523e5478b8b0aa9cdcd10038cf7651fe 06-May-2013 Ulrich Weigand <ulrich.weigand@de.ibm.com> Add SystemZ support

This patch then adds all the usual platform-specific pieces for SystemZ:
driver support, basic target info, register names and constraints,
ABI info and vararg support. It also adds new tests to verify pre-defined
macros and inline asm, and updates a test for the minimum alignment change.

This version of the patch incorporates feedback from reviews by
Eric Christopher and John McCall. Thanks to all reviewers!

Patch by Richard Sandiford.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181211 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
6b20351a1d6178addfaa86716aaba36f2e9ea188 06-May-2013 Ulrich Weigand <ulrich.weigand@de.ibm.com> Allow targets to define minimum alignment for global variables

This patch adds a new common code feature that allows platform code to
request minimum alignment of global symbols. The background for this is
that on SystemZ, the most efficient way to load addresses of global symbol
is the LOAD ADDRESS RELATIVE LONG (LARL) instruction. This instruction
provides PC-relative addressing, but only to *even* addresses. For this
reason, existing compilers will guarantee that global symbols are always
aligned to at least 2. [ Since symbols would otherwise already use a
default alignment based on their type, this will usually only affect global
objects of character type or character arrays. ] GCC also allows creating
symbols without that extra alignment by using explicit "aligned" attributes
(which then need to be used on both definition and each use of the symbol).

To enable support for this with Clang, this patch adds a
TargetInfo::MinGlobalAlign variable that provides a global minimum for the
alignment of every global object (unless overridden via explicit alignment
attribute), and adds code to respect this setting. Within this patch, no
platform actually sets the value to anything but the default 1, resulting
in no change in behaviour on any existing target.

This version of the patch incorporates feedback from reviews by
Eric Christopher and John McCall. Thanks to all reviewers!

Patch by Richard Sandiford.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181210 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
ff920eec4d449bee560d8d99636ad0eb50cd9d8d 04-May-2013 Tim Northover <Tim.Northover@arm.com> AArch64: teach Clang about __clear_cache intrinsic

libgcc provides a __clear_cache intrinsic on AArch64, much like it
does on 32-bit ARM.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181111 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
d99990df0b4aca43a0315b2928ff1b8baf704052 04-May-2013 Argyrios Kyrtzidis <akyrtzi@gmail.com> Revert r177218.

Per discussion in cfe-commits, asserting may be a better way than introducing a special test flag.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181073 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
cc2b653c319599f502425d2c3de29865d47bb9e4 04-May-2013 Douglas Gregor <dgregor@apple.com> Remove DiagnosticConsumer::clone(), a bad idea that is now unused.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181070 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
a4a90cabfa15c900016a7cfaea51a6d4e8ebf4db 04-May-2013 Douglas Gregor <dgregor@apple.com> When building a module, forward diagnostics to the outer diagnostic consumer.

Previously, we would clone the current diagnostic consumer to produce
a new diagnostic consumer to use when building a module. The problem
here is that we end up losing diagnostics for important diagnostic
consumers, such as serialized diagnostics (where we'd end up with two
diagnostic consumers writing the same output file). With forwarding,
the diagnostics from all of the different modules being built get
forwarded to the one serialized-diagnostic consumer and are emitted in
a sane way.

Fixes <rdar://problem/13663996>.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181067 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
83eba02c2ea333015335e2f74c4d11c5315b655d 03-May-2013 Stephen Hines <srhines@google.com> Merge remote-tracking branch 'upstream/master' into merge-20130502
363f99d0cd6c00e54dde2bc66a3af234ed805b2c 03-May-2013 Rafael Espindola <rafael.espindola@gmail.com> Initialize WarnOnSpellCheck.

Clang always calls setWarnOnSpellCheck, but we shouldn't require every client to
do so.

Issue noticed by Enea Zaffanella.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181021 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
63063f5dd7e6cee865f513d3c3f283fc20de18d0 03-May-2013 Benjamin Kramer <benny.kra@googlemail.com> Add support for -march=btver2.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181006 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
44f72d34a947c654f88ea212b7fe5834615bca11 24-Apr-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Add some more required SPARC v9 predefined macros.

Solaris/AuroraUX only need __arch64__, the BSDs need the other variants.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180172 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
6576a0d1e26f617d29d54ed99b16099d93a05264 19-Apr-2013 Benjamin Kramer <benny.kra@googlemail.com> Add comment to describe cleverness.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179806 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
5ddf70f1e736d4919c147cf938c8f20b0d17dd00 18-Apr-2013 Benjamin Kramer <benny.kra@googlemail.com> Reject asm output constraints that consist of modifiers only.

Fixes PR15759.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179756 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
87f9d81d0ab806dcf6ca50a0c068dcb2ba7f51b3 18-Apr-2013 Argyrios Kyrtzidis <akyrtzi@gmail.com> [Modules] Use global index to improve typo correction performance

Typo correction for an unqualified name needs to walk through all of the identifier tables of all modules.
When we have a global index, just walk its identifier table only.

rdar://13425732

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179730 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
56e1f1f7abda394b81a5df7f75d3c6e0a570d6c0 16-Apr-2013 Jakob Stoklund Olesen <stoklund@2pi.dk> Add support for sparcv9 targets.

The SPARC v8 and SPARC v8 architectures are very similar, so use a base
class to share most information between them.

Include operating systems with known SPARC v9 ports.

Also fix two issues with the SPARC v8 data layout string: SPARC v8 is a
big endian target with a 64-bit aligned stack.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179596 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
321ae79aae228aa069795e78449a95fa35e2abfd 14-Apr-2013 Simon Atanasyan <simon@atanasyan.com> [Mips] Support -mmicromips / -mno-micromips command line options.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179489 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
d96e315fb82950e105188055151d665c03e781ed 14-Apr-2013 Simon Atanasyan <simon@atanasyan.com> [Mips] Follow-up to r179481. Consider "single-float" as a separate
independent of float ABI feature in the MipsTargetInfoBase class.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179486 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
ecc65238c98ba21d08763da7b7972d617677e908 13-Apr-2013 Argyrios Kyrtzidis <akyrtzi@gmail.com> Introduce SourceManager::getDecomposedIncludedLoc, that returns the "included/expanded in" decomposed location of the given FileID.

The main benefit is to speed-up SourceManager::isBeforeInTranslationUnit which is common to query
the included/expanded location of the same FileID multiple times.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179435 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
c0783dc18a78b55e9486b72fa0b193dbf1b65fbb 08-Apr-2013 Eli Bendersky <eliben@google.com> The PNaCl target no longer permits __attribute__((regparm)).

Remove the custom lowering code dealing with it, disallow it in PNaclTargetInfo
and adjust tests accordingly.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179059 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
dabcbf95483a59f2342b5c29112a8f4f8b8ecf1b 05-Apr-2013 Tim Northover <Tim.Northover@arm.com> AArch64: bring predefines in line with most recent ACLE document

The prefixes and names used are now identical to 32-bit ARM, which is also
expected to remain unchanged.

If we made this change after a release, we'd probably have to support both
variants for a while, but I think since AArch64 exists only on trunk now, it's
acceptable to simply swap them now.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178870 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
d1b33945f3254de9b02063cd203374856492ed02 05-Apr-2013 Michael J. Spencer <bigcheesegs@gmail.com> Add support for __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8} on x86.

This fixes std::thread with libstdc++.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178816 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
3b848ec836c94ed6deb850f332638f085280f8e6 01-Apr-2013 Tom Stellard <thomas.stellard@amd.com> R600: Add missing Southern Islands GPU to setCPU() function

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178498 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
affa3af144eb1ae1b5e6e1c9ca0f979bc6982990 30-Mar-2013 Justin Holewinski <jholewinski@nvidia.com> Remove old NVPTX cpus and add new NVPTX cpus

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178419 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
fe6b2713656c2d1bf559be357f0e0bf2d09bebd6 30-Mar-2013 Hal Finkel <hfinkel@anl.gov> Add support for gcc-compatible -mfprnd -mno-fprnd PPC options

gcc provides -mfprnd and -mno-fprnd for controlling the fprnd target
feature; support these options as well.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178414 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1bfc28c48c1b86a05d2e07b403107ef3da5a0f8e 29-Mar-2013 Michael Liao <michael.liao@intel.com> Add RDSEED intrinsic support defined in AVX2 extension



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178331 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
829d187e2100d2cfd85acefc2e867d12336e393f 28-Mar-2013 Hal Finkel <hfinkel@anl.gov> Add support for gcc-compatible -mpopcntd -mno-popcntd PPC options

gcc provides -mpopcntd and -mno-popcntd for controlling the popcntd target
feature; support these options as well.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178235 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f4320ab08da5e4c927ef326c68d5081f5f2a2268 28-Mar-2013 Hal Finkel <hfinkel@anl.gov> Add support for gcc-compatible -mmfcrf -mno-mfcrf PPC options

gcc provides -mmfcrf and -mno-mfcrf for controlling what we call
the mfocrf target feature. Also, PPC is now making use of the
static function AddTargetFeature used by the Mips Driver code.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178227 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
72339a0d160720c6301d629761e701e5fad56f5e 26-Mar-2013 Michael Liao <michael.liao@intel.com> Add PRFCHW intrinsic support

- Add head 'prfchwintrin.h' to define '_m_prefetchw' which is mapped to
LLVM/clang prefetch builtin
- Add option '-mprfchw' to enable PRFCHW feature and pre-define '__PRFCHW__'
macro



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178041 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
7aac45a08236891bffdf1959dee2f340a0387725 26-Mar-2013 Douglas Gregor <dgregor@apple.com> <rdar://problem/13358795> Teach CMake to check Subversion version information at build time, not configure time.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177939 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
ersion.cpp
b63d8d2609985c26835c3890a3a929af6a4a6d1e 25-Mar-2013 Matt Beaumont-Gay <matthewbg@google.com> Fix a layering violation introduced in r177705.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177922 91177308-0d34-0410-b5e6-96231b3b80d8
penMPKinds.cpp
c640058aa7f224a71ce3b1d2601d84e1b57f82d3 22-Mar-2013 Alexey Bataev <a.bataev@hotmail.com> OpenMP threadprivate directive parsing and semantic analysis

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177705 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
penMPKinds.cpp
906d66acc5cf2679453e10a4f0a67feedd765b21 20-Mar-2013 Douglas Gregor <dgregor@apple.com> <rdar://problem/12368093> Extend module maps with a 'conflict' declaration, and warn when a newly-imported module conflicts with an already-imported module.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177577 91177308-0d34-0410-b5e6-96231b3b80d8
odule.cpp
970e441671be130c9a12b7eda2a0b795008812a5 20-Mar-2013 Douglas Gregor <dgregor@apple.com> Make sure that Module::ConfigMacrosExhaustive gets initialized and deserialized correctly.

This fixes regressions introduced in r177466 that caused several
module tests to fail sporadically.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177481 91177308-0d34-0410-b5e6-96231b3b80d8
odule.cpp
63a726870b486e0470c3a4b11cf62bab8be00b73 20-Mar-2013 Douglas Gregor <dgregor@apple.com> <rdar://problem/10796651> Introduce configuration macros into module maps.

Configuration macros are macros that are intended to alter how a
module works, such that we need to build different module variants
for different values of these macros. A module can declare its
configuration macros, in which case we will complain if the definition
of a configation macro on the command line (or lack thereof) differs
from the current preprocessor state at the point where the module is
imported. This should eliminate some surprises when enabling modules,
because "#define CONFIG_MACRO ..." followed by "#include
<module/header.h>" would silently ignore the CONFIG_MACRO setting. At
least it will no longer be silent about it.

Configuration macros are eventually intended to help reduce the number
of module variants that need to be built. When the list of
configuration macros for a module is exhaustive, we only need to
consider the settings for those macros when building/finding the
module, which can help isolate modules for various project-specific -D
flags that should never affect how modules are build (but currently do).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177466 91177308-0d34-0410-b5e6-96231b3b80d8
odule.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
c1d22393628a145e54396c0ac66e9625d13a7658 13-Mar-2013 Argyrios Kyrtzidis <akyrtzi@gmail.com> [Modules] Resolve top-headers of modules lazily.

This allows resolving top-header filenames of modules to FileEntries when
we need them, not eagerly.

Note that that this breaks ABI for libclang functions
clang_Module_getTopLevelHeader / clang_Module_getNumTopLevelHeaders
but this is fine because they are experimental and not widely used yet.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176975 91177308-0d34-0410-b5e6-96231b3b80d8
odule.cpp
e8a1efcafbea9a40fe12454d27baa30488475862 12-Mar-2013 Matthew Curtis <mcurtis@codeaurora.org> Remove driver support for Hexagon V2 and V3

Driver will now error when trying to compile for V2 or V3.

Removal of V2 and V3 support will allow us to simplify the hexagon
back-end.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176859 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f3ddf639697d9be7f0429f3672a32c9fbac3653d 07-Mar-2013 Guy Benyei <guy.benyei@intel.com> Add 'e' to the SPIR data layout - SPIR is little endian for now.
Add 32/64 bit specific target defines for SPIR.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176629 91177308-0d34-0410-b5e6-96231b3b80d8
argets.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
971023066ce2a20aa693cc981412d015bac304b9 05-Mar-2013 Jack Carter <jack.carter@imgtec.com> Mips specific inline assembler constraint 'R'

'R' An address that can be sued in a non-macro load or store.

Including missing positive test case and fixed typo for r176453.

Thanks to Richard Smith for catching this!

Jack



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176506 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
fc55345144f636f7687fd37649f0302914981fff 04-Mar-2013 Bob Wilson <bob.wilson@apple.com> Tidy up lists of Cortex-A series processors, adding entries for A7.

Also fix a missing entry for cortex-r5 in one copy of getLLVMArchSuffixForARM.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176457 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
d2ab6d371e2bb93ced857041b9173ad50bbcbfcd 04-Mar-2013 Jack Carter <jack.carter@imgtec.com> Mips specific inline assembler constraint 'R'

'R' An address that can be sued in a non-macro load or store.
This patch includes a positive test case.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176453 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
fd07591ea5bcdb7fdd391dc64488d3551619ed3d 04-Mar-2013 Tom Stellard <thomas.stellard@amd.com> R600: Use the GPU type to determine the correct DataLayout v2

v2:
- Add R600_DOUBLE_OPS for RV670
- s/CPU/GPU/

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176440 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
fc09336a5965040736f9bc63a70416003972364e 01-Mar-2013 Stefanus Du Toit <stefanus.dutoit@rapidmind.com> Fix typos: [Dd]iagnosic -> [Dd]iagnostic

These all appear in comments or (ironically) diagnostics output.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176383 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
838a920fda4408d1b12faca704da2b848a6efcc1 01-Mar-2013 Argyrios Kyrtzidis <akyrtzi@gmail.com> Add one more sanity check in SourceManager::getFileIDLoaded().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176333 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
7db4bb9226f303392934c91869afdeb4d153ca95 01-Mar-2013 Argyrios Kyrtzidis <akyrtzi@gmail.com> In SourceManager::getFileIDLoaded(), add some sanity checks to make sure we don't enter an infinite loop.

rdar://13120919

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176331 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
e9616a4972a4c2fdc28128c057f21d7a79516c86 27-Feb-2013 Simon Atanasyan <simon@atanasyan.com> [Mips] Add two new aliases for MIPS ABI names 32 (means o32 abi) and 64
(means n64 abi) to improve compatibility with GNU tools.
Patch by Jia Liu <proljc@gmail.com>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176187 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
2564f811ba107cb314a594d730aa3357b6181b62 27-Feb-2013 Ted Kremenek <kremenek@apple.com> Refine SourceManager's isBeforeInTranslationUnit() cache to have more entries.

isBeforeInTranslationUnit() uses a cache to reduce the expensive work
to compute a common ancestor for two FileIDs. This work is very
expensive, so even caching the latest used FileIDs was a big win.
A closer analysis of the cache before, however, shows that the cache
access pattern would oscillate between a working set of FileIDs, and
thus caching more pairs would be profitable.

This patch adds a side table for extending caching. This side table
is bounded in size (experimentally determined in this case from
a simple Objective-C project), and when the table gets too large
we fall back to the single entry caching before as before.

On Sketch (a small example Objective-C project), this optimization
reduces -fsyntax-only time on SKTGraphicView.m by 5%. This is
for a project that is already using PCH.

Fixes <rdar://problem/13299847>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176142 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
f9067c6b56b7ea89a43c8c2d5a0ca2c8487ea987 24-Feb-2013 Aaron Ballman <aaron@aaronballman.com> Moving initialization into the initializer list and correcting capitalization, as suggested by Chandler.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176001 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
a8f7a97a22d1ed92fd3309f071c0121c22e52aa3 23-Feb-2013 Logan Chien <tzuhsiang.chien@gmail.com> Implement __builtin_eh_return_data_regno() for ARM and MIPS.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175954 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
7728cddd7866fadd07f1191eee40985e3cdbc6bf 23-Feb-2013 Peter Collingbourne <peter@pcc.me.uk> Revert r175912, "Add support for coldcc to clang" at John's request.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175936 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
4c67aa96401b67b5200e701cff87485067ab0792 22-Feb-2013 Peter Collingbourne <peter@pcc.me.uk> Add support for coldcc to clang

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175912 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f512acee01617c9da8079ed88ded3bb9f2418349 22-Feb-2013 Benjamin Kramer <benny.kra@googlemail.com> Replace some typically large vectors with SmallVector.

This may seem counter-intuitive but the POD-like optimization helps when the
vectors grow into multimegabyte buffers. SmallVector calls realloc which knows
how to twiddle virtual memory bits and avoids large copies.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175906 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
66874fb18afbffb8b2ca05576851a64534be3352 21-Feb-2013 David Blaikie <dblaikie@gmail.com> Use None rather than Optional<T>() where possible.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175705 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
90a7820de7685cec75fcd47e98f0f9623c0f0477 20-Feb-2013 Jordan Rose <jordan_rose@apple.com> Revert "intmax_t is long long on Darwin, not long."

'long' and 'long long' are different for the purposes of mangling.
This caused <rdar://problem/13254874>.

This reverts commit c2f994d31ec85e9af811af38eb1b28709aef0b2c.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175681 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
dc84cd5efdd3430efb22546b4ac656aa0540b210 20-Feb-2013 David Blaikie <dblaikie@gmail.com> Include llvm::Optional in clang/Basic/LLVM.h

Post-commit CR feedback from Jordan Rose regarding r175594.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175679 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
ersionTuple.cpp
a905c4fd256396b589013304d9793cc199b8a0c6 20-Feb-2013 Jordan Rose <jordan_rose@apple.com> intmax_t is long long on Darwin, not long.

<rdar://problem/11540697>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175588 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
21a0004d80f50808ee343ae70092f6260a4c9477 19-Feb-2013 Argyrios Kyrtzidis <akyrtzi@gmail.com> [modules] Refactor code from ASTReader::makeModuleVisible() into a new function,
Module::getExportedModules() so it can be reused.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175548 91177308-0d34-0410-b5e6-96231b3b80d8
odule.cpp
6637b0607127f0df5a4f4c8180c02c1e041d4682 19-Feb-2013 Aaron Ballman <aaron@aaronballman.com> Fixing a typo where FixIts was accidentally self-assigning instead of assigning in the parameter Fixits. This fixes several failed assertions with MSVC debug builds.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175483 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
6a93c86fc73d84a40d3460be04444669c8439e20 18-Feb-2013 Tim Northover <Tim.Northover@arm.com> AArch64: add atomic support parameters to TargetInfo

This allows Clang to detect and deal wih __atomic_* operations properly on
AArch64. Previously we produced an error when encountering them at high
optimisation levels.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175438 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
223f0ff6a9a5d0eaf63b98b3aa92888b4c088868 09-Feb-2013 Jordan Rose <jordan_rose@apple.com> Remove some stray uses of <ctype.h> functions.

These are causing assertions on some MSVC builds.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174805 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
799f3c13fbeacedda24549c41e72c07905208661 08-Feb-2013 Jordan Rose <jordan_rose@apple.com> CharInfo: Add missing "using namespace clang::charinfo" in .cpp file.

Should fix the MSC bot.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174769 91177308-0d34-0410-b5e6-96231b3b80d8
harInfo.cpp
3f6f51e28231f65de9c2dd150a2d757b2162cfa3 08-Feb-2013 Jordan Rose <jordan_rose@apple.com> Excise <cctype> from Clang (except clang-tblgen) in favor of CharInfo.h.

Nearly all of these changes are one-to-one replacements; the few that
aren't have to do with custom identifier validation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174768 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
dentifierTable.cpp
argetInfo.cpp
9893902eceba7f01dd1521349d33866f77254d78 08-Feb-2013 Jordan Rose <jordan_rose@apple.com> Pull Lexer's CharInfo table out for general use throughout Clang.

Rewriting the same predicates over and over again is bad for code size and
code maintainence. Using the functions in <ctype.h> is generally unsafe
unless they are specified to be locale-independent (i.e. only isdigit and
isxdigit).

The next commit will try to clean up uses of <ctype.h> functions within Clang.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174765 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
harInfo.cpp
d46b7ec911ce1cb837397d5e12fe9928f63de6ab 07-Feb-2013 Richard Smith <richard-llvm@metafoo.co.uk> Add a *San + modules FIXME.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174565 91177308-0d34-0410-b5e6-96231b3b80d8
angOptions.cpp
2821e180094459cbdef37e7d7c12bb406d5b82ba 01-Feb-2013 Bill Schmidt <wschmidt@linux.vnet.ibm.com> Add some missing PPC cpus

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174215 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
3c6aaeb26202b41173dd9ea982833fe975147d80 01-Feb-2013 Hal Finkel <hfinkel@anl.gov> Add -mqpx and -mno-qpx feature flags to toggle use of the PPC QPX vector instruction set

I've renamed the altivec test to ppc-features (because now there is more than one feature to test).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174204 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
5ccd3d0214b9d765a1bb41872da27d3c5530ab2b 01-Feb-2013 Hal Finkel <hfinkel@anl.gov> Add PPC A2Q core and BG/Q preprocessor definitions

The a2q core is the variant of the a2 core used on the BG/Q supercomputers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174151 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
199402b9e081dedc28e19ab6e727470b34f2f64d 01-Feb-2013 Bill Schmidt <wschmidt@linux.vnet.ibm.com> Enable -fno-altivec, -mno-altivec for PowerPC.

Introduces these negation forms explicitly and uses them to control a new
"altivec" target feature for PowerPC. This allows avoiding generating
Altivec instructions on processors that support Altivec.

The new test case verifies that the Altivec "lvx" instruction is not
used when -fno-altivec is present on the command line.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174140 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
c264e16a42b3f6c36521857a29ea0949d9781c22 31-Jan-2013 Tim Northover <Tim.Northover@arm.com> Add support for AArch64 target.

In cooperation with the LLVM patch, this should implement all scalar front-end
parts of the C and C++ ABIs for AArch64.

This patch excludes the NEON support also reviewed due to an outbreak of
batshit insanity in our legal department. That will be committed soon bringing
the changes to precisely what has been approved.

Further reviews would be gratefully received.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174055 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
566f06311f315087a27e882aafc05cb505912c27 30-Jan-2013 Filipe Cabecinhas <me@filcab.net> Changed to static_cast, due to post-commit review.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173980 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
825648a9e2de81f58e425690c2f4bd50404fa433 30-Jan-2013 Filipe Cabecinhas <me@filcab.net> Cast to remove the narrowing conversion error in c++11.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173978 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
877761c56d850a6cc5f9246bf248c8a4dc2b0554 30-Jan-2013 Richard Trieu <rtrieu@google.com> Handle passing non-Qualtypes to %diff better. Instead of asserting, fall back
to printing the default case. This is a fix for PR15023.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173965 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
cb5620c9b213f4bd323912159fdddda35e258a14 30-Jan-2013 Dmitri Gribenko <gribozavr@gmail.com> Move UTF conversion routines from clang/lib/Basic to llvm/lib/Support

This is required to use them in TableGen.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173924 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
onvertUTF.c
onvertUTFWrapper.cpp
adeb7822cb7947194fef0e12d2d6583ccb8240b5 26-Jan-2013 Dmitri Gribenko <gribozavr@gmail.com> <limits.h> includes <linux/limits.h> on Linux, no need to special-case it


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173578 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
713b7c011869f177dc76e6df4f7f44b1bd073bb0 26-Jan-2013 Douglas Gregor <dgregor@apple.com> Since we're stuck with realpath for the header <-> module mapping,
factor the realpath calls into FileManager::getCanonicalName() so we
can cache the results of this epically slow operation. 5% speedup on
my modules test, and realpath drops out of the profile.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173542 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
b8b2c9da87e7d70a1679db026f40548b3192b705 25-Jan-2013 John McCall <rjmccall@apple.com> First pass at abstracting out a class for the target C++ ABI.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173514 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
b0fc94ceaf1462a56068bbe400e6f22ef96ac681 22-Jan-2013 Adhemerval Zanella <azanella@linux.vnet.ibm.com> PowerPC: fix __builtin_eh_return_data_regno return


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173188 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
cd376b63c42214c7851ca917e7da9d30f9e84fa4 09-Jan-2013 Stephen Hines <srhines@google.com> Update Clang for merge to r171906.

clang-tblgen-rules.mk - New AttrDump.inc target
lib/AST/Android.mk
lib/Analysis/Android.mk
lib/Basic/Android.mk
lib/Lex/Android.mk
lib/Parse/Android.mk
lib/Sema/Android.mk
lib/StaticAnalyzer/Checkers/Android.mk

Change-Id: If31b4c9123f730ab851f11b00b0688166b14b4b2
ndroid.mk
15bb58edc9d053aa49c28167deb41ff0409ddabc 21-Jan-2013 Stephen Hines <srhines@google.com> Merge commit 'd130fd2e141f1fef412c2d58e7385370801bd718' into merge-llvm

Conflicts:
lib/Basic/Targets.cpp

Change-Id: I90a669a33ffe4de8b32c8459016fd0b2a55da0ad
dbee9491716f98d226b3b15cd96dacb01ea69c54 18-Jan-2013 Akira Hatanaka <ahatanaka@mips.com> [mips] Enable inlining of atomic ops on mips32 and mips64.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172855 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
4f45bc099f2665bc6e4bcbb169aa452390dbf3fe 18-Jan-2013 Will Dietz <wdietz2@illinois.edu> [ubsan] Add support for -fsanitize-blacklist

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172808 91177308-0d34-0410-b5e6-96231b3b80d8
angOptions.cpp
argets.cpp
b6cbe517237c3c223beb064d60d5b49e56d65c06 14-Jan-2013 Douglas Gregor <dgregor@apple.com> Implement parsing, AST, (de-)serialization, and placeholder global
metadata for linking against the libraries/frameworks for imported
modules.

The module map language is extended with a new "link" directive that
specifies what library or framework to link against when a module is
imported, e.g.,

link "clangAST"

or

link framework "MyFramework"

Importing the corresponding module (or any of its submodules) will
eventually link against the named library/framework.

For now, I've added some placeholder global metadata that encodes the
imported libraries/frameworks, so that we can test that this
information gets through to the IR. The format of the data is still
under discussion.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172437 91177308-0d34-0410-b5e6-96231b3b80d8
odule.cpp
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
iagnostic.cpp
iagnosticIDs.cpp
odule.cpp
argets.cpp
c3cd6f7a5d33ad44f6c9cf4faa7046c77baa128e 12-Jan-2013 Matt Beaumont-Gay <matthewbg@google.com> Fix -Wunused-comparison for comparisons in arguments to function-like macros.

Previously, -Wunused-comparison ignored comparisons in both macro bodies and
macro arguments, but we would still emit a -Wunused-value warning for either.
Now we correctly emit -Wunused-comparison for expressions in macro arguments.

Also, add isMacroBodyExpansion to SourceManager, to go along with
isMacroArgExpansion.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172279 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
7266cf6464bc3ec65044c5783df739cfe7b6cd61 10-Jan-2013 Guy Benyei <guy.benyei@intel.com> Enable intel_ocl_bicc for x86_64 target only. Remove fix from 171969 that enabled this extension for multiple targets.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172052 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
390a70f718871933cbfd751f8c3dfde28a762a18 05-Jan-2013 Akira Hatanaka <ahatanaka@mips.com> [mips] Fix data layout string. Add 64 to the list of native integer widths
and add stack alignment information.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171588 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
35abfcd3285ad82fa269b8f2468dee01a4dceb52 02-Jan-2013 Argyrios Kyrtzidis <akyrtzi@gmail.com> DiagnosticIds: Fix offset/ID calculation, no impact outside this code.

Patch by Will Dietz:

Minor touchup so the values of Offset/ID reflect their intention.
Previously, the sum (Offset+ID) was correct, but Offset/ID
individually were wrong.

Caught by investigating unsigned overflow reported by -fsanitize=integer.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171421 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
1a090f1b239889d0b48e1413152e88ed07e6e09d 02-Jan-2013 Anshuman Dasgupta <adasgupt@codeaurora.org> Correct Hexagon DataLayout string. Fixes bug 14744.

Patch by Krzysztof Parzyszek!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171415 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
4e24f0f711e2c9fde79f19fa1c80deaab3f3b356 02-Jan-2013 Richard Smith <richard-llvm@metafoo.co.uk> s/CXX0X/CXX11/g, except for __GNU_EXPERIMENTAL_CXX0X__, and update a few nearby 'C++0x' comments.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171372 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
3b844ba7d5be205a9b4f5f0b0d1b7978977f4b8c 02-Jan-2013 Chandler Carruth <chandlerc@gmail.com> Rewrite #includes for llvm/Foo.h to llvm/IR/Foo.h as appropriate to
reflect the migration in r171366.

Re-sort the #include lines to reflect the new paths.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171369 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
80ad52f327b532bded5c5b0ee38779d841c6cd35 02-Jan-2013 Richard Smith <richard-llvm@metafoo.co.uk> s/CPlusPlus0x/CPlusPlus11/g


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171367 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
odule.cpp
peratorPrecedence.cpp
argets.cpp
38980086c0f791e8c23cc882574f18e5b4a87db6 25-Dec-2012 Guy Benyei <guy.benyei@intel.com> Add intel_ocl_bicc calling convention as a function attribute to clang. The calling convention is already implemented in LLVM.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171056 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
ab13751d76be4473e9317d3885cb351b79f18492 21-Dec-2012 Quentin Colombet <qcolombet@apple.com> Add ARM cortex-r5 subtarget as available mcpu

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170909 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
65548b305a29748d8365b10040a9681ba9423c78 20-Dec-2012 Daniel Jasper <djasper@google.com> Remove namespace qualifier that lead to build breakage.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170759 91177308-0d34-0410-b5e6-96231b3b80d8
peratorPrecedence.cpp
909610266e67ce40a9d8a4df8be81b3de999b120 20-Dec-2012 Daniel Jasper <djasper@google.com> Move operator precedence calculation to new header

Thereby, it can be reused by clang-format and others.
Review: http://llvm-reviews.chandlerc.com/D229

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170757 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
peratorPrecedence.cpp
ad017fa7a4df7389d245d02a49b3c79ed70bedb9 20-Dec-2012 Bill Wendling <isanbard@gmail.com> Revert r170500. It over-zealously converted *ALL* things named Attributes, which is wrong here.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170721 91177308-0d34-0410-b5e6-96231b3b80d8
uiltins.cpp
5b9268f26ac53a74d2c504279fe577d988d5615d 20-Dec-2012 Richard Smith <richard-llvm@metafoo.co.uk> Fix code that attempted to produce a diagnostic with one DiagnosticEngine, then
produce a note for that diagnostic either with a different DiagnosticEngine or
after calling DiagnosticEngine::Reset(). That didn't make any sense, and did the
wrong thing if the original diagnostic was suppressed.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170636 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
094dbf917127a1228147587076d59ca45b7c258d 19-Dec-2012 Bill Wendling <isanbard@gmail.com> Rename the 'Attributes' class to 'Attribute'. It's going to represent a single attribute in the future.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170500 91177308-0d34-0410-b5e6-96231b3b80d8
uiltins.cpp
d53c2d30cf89eca5c165d682f6cc1261f54674fd 16-Dec-2012 Craig Topper <craig.topper@gmail.com> Don't use SourceLineCache in getColumnNumber if LastLineNoResult is past the end of the cache. Fixes PR14570.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170281 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
e72f4d93ed44e00e1b1433768f0515b9c4f38562 14-Dec-2012 NAKAMURA Takumi <geek4civic@gmail.com> Targets.cpp: [cygwin] Add the predefined macro "_X86_", according to newer version of cygwin/w32api.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170188 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
8a03357d13daa40d341e5724ed47039b4d8af140 13-Dec-2012 Guy Benyei <guy.benyei@intel.com> Remove little endian specification from SPIR data layout - SPIR doesn't define endiannes in the data layout.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170125 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
27fa2364b05ab26138c2ecf0eac1937b7fc6c037 13-Dec-2012 Rafael Espindola <rafael.espindola@gmail.com> Initial support for FreeBSD on ARM.
Patch by Andrew Turner.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170096 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
21fa5d182f7b0b65c8233d6e228fc374d6d6e8bb 12-Dec-2012 Benjamin Kramer <benny.kra@googlemail.com> PR14581: Make SourceLocation::printToString work, or it will always return an empty string.

No test case, this is debugging code.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169980 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
1b257afbae854c6817f26b7d61c4fed8ff7aebad 11-Dec-2012 Douglas Gregor <dgregor@apple.com> Use @import rather than @__experimental_modules_import, since the
latter is rather a mess to type.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169919 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
bd5da3ca593fbf354fd19c2894eee50694c96788 11-Dec-2012 Guy Benyei <guy.benyei@intel.com> Add SPIR32/SPIR64 targets to Clang

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169917 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
a07b59e5e9b55033239c80552094421a01b75c8a 11-Dec-2012 Benjamin Kramer <benny.kra@googlemail.com> Speed up looking up static diagnostic infos.

Instead of doing a binary search over the whole diagnostic table (which weighs
a whopping 48k on x86_64), use the existing enums to compute the index in the
table. This avoids loading any unneeded data from the table and avoids littering
CPU caches with it. This code is in a hot path for code with many diagnostics.

1% speedup on -fsyntax-only gcc.c, which emits a lot of warnings.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169890 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
e5d30e3b403539b10aaa52f03875a2243bf88904 11-Dec-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> Extend stat query APIs to explicitly specify if the query is for
a file or directory, allowing just a stat call if a file descriptor
is not needed.

Doing just 'stat' is faster than 'open/fstat/close'.
This has the effect of cutting down system time for validating the input files of a PCH.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169831 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
ileSystemStatCache.cpp
fff3248e69c478cfb4d1a1ffdefb808d5885535b 09-Dec-2012 Aaron Ballman <aaron@aaronballman.com> Virtual method overrides can no longer have mismatched calling conventions. This fixes PR14339.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169705 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
6e399b42b5356d8ee59eb5dc4da8c89a0d0b7ae1 08-Dec-2012 David Chisnall <csdavec@swan.ac.uk> long double should be 64 bits on FreeBSD/MIPS64. It possibly should be on
Linux too, as I think we inherited it from there. The ABI spec says 128-bit,
although I think SGI's compiler on IRIX may be the only thing ever to support
this.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169674 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
12f37e411462b8388eb1309357bd62257debacac 07-Dec-2012 DeLesley Hutchins <delesley@google.com> Fix analysis based warnings so that all warnings are emitted when compiling
with -Werror. Previously, compiling with -Werror would emit only the first
warning in a compilation unit, because clang assumes that once an error occurs,
further analysis is unlikely to return valid results. However, warnings that
have been upgraded to errors should not be treated as "errors" in this sense.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169649 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
iagnosticIDs.cpp
441d9f7a36d3289eed0299823f05f70f810364ee 04-Dec-2012 Eli Bendersky <eliben@google.com> Adapt to LLVM commit 169291 which streamlines the usage of NaCl/NativeClient
in the triple.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169292 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
55fc873017f10f6f566b182b70f6fc22aefa3464 04-Dec-2012 Chandler Carruth <chandlerc@gmail.com> Sort all of Clang's files under 'lib', and fix up the broken headers
uncovered.

This required manually correcting all of the incorrect main-module
headers I could find, and running the new llvm/utils/sort_includes.py
script over the files.

I also manually added quite a few missing headers that were uncovered by
shuffling the order or moving headers up to be main-module-headers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169237 91177308-0d34-0410-b5e6-96231b3b80d8
uiltins.cpp
iagnostic.cpp
iagnosticIDs.cpp
ileManager.cpp
dentifierTable.cpp
odule.cpp
ourceManager.cpp
argetInfo.cpp
okenKinds.cpp
ersion.cpp
6e6330c07a42ace74637d0ad7356a2fa20de81ec 01-Dec-2012 Bill Wendling <isanbard@gmail.com> Don't emit a warning with an input/output parameter. We assume the user knows what they're doing here.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169059 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
e2dbaa9f78be2b09b0723d1b614286412808b5d3 01-Dec-2012 Bill Wendling <isanbard@gmail.com> Don't warn if the input size is less than the register size. Also don't warn if
the output size is greater than the register size. No truncation occurs with
those. Reword warning to make it clearer what's the problem is.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169054 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
74632aab3ad87c89823421d8239a47b6697b6e79 30-Nov-2012 Quentin Colombet <qcolombet@apple.com> Add ARM cortex-a5 subtarget

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168958 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
398b8e86ab421592f9e72b92c4558ea865b26e86 30-Nov-2012 Quentin Colombet <qcolombet@apple.com> Revert commit revision r168953, to change the commit message, which was empty

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168956 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
b3233f5ed4411af458dc66fa566df2ba7510d26f 29-Nov-2012 Quentin Colombet <qcolombet@apple.com> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168953 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
6902e4146d426998ff6a94b16776c1b3f805a048 27-Nov-2012 Eli Friedman <eli.friedman@gmail.com> Fix the definition of the vfork() builtin on Haiku. PR14378.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168674 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
f5824998702fad8eb2450e992b48d710a59723ff 26-Nov-2012 Eli Friedman <eli.friedman@gmail.com> Add missing "break". Thanks to Craig for spotting it.

I'm looking at ways to fix the relevant test so it can catch this sort of mistake.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168618 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
7baa711e61258a762db42e449e424bd0928318a6 17-Nov-2012 Benjamin Kramer <benny.kra@googlemail.com> Enable inlining of 4 byte atomic ops on ppc32, 8 byte atomic ops on ppc64.

Also fixes a bit/byte mismatch when checking if a target supports atomic ops of a certain size.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168260 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
faf3538605ef3c5ba475639424f6f94ec4aa5179 17-Nov-2012 Eli Friedman <eli.friedman@gmail.com> Add missing features for misc x86 CPUs to CPU feature translation. Patch by Jung-uk Kim.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168239 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
612db2aa100453710ce9eb9032268ae30b902d4e 17-Nov-2012 Eli Friedman <eli.friedman@gmail.com> Clean up X86 target feature translation code slightly. No intended functional change. Patch by Jung-uk Kim.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168237 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
49a87549f4dc95ecb3d8a593b71df7c167a51f85 16-Nov-2012 Douglas Gregor <dgregor@apple.com> Since CreateTargetInfo is taking ownership of the target options, pass
it as a pointer.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168136 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
62221b17c90457df9ca0ff20bb54d634e8951def 15-Nov-2012 Richard Smith <richard-llvm@metafoo.co.uk> Add -cc1 option -fno-diagnostics-use-presumed-location, a handy mode for
working with preprocessed testcases. This causes source locations in
diagnostics to point at the spelling location instead of the presumed location,
while still keeping the semantic effects of the line directives (entering and
leaving system-header mode, primarily).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168004 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
825d386c1d66c2444117c0142c4d79246aaaa9bd 14-Nov-2012 Eric Christopher <echristo@gmail.com> Remove the cellspu port.

Approved by Chris Lattner.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167983 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f634bdfbf42758f7d49b468df09efa3686f7b699 12-Nov-2012 Bill Wendling <isanbard@gmail.com> The register constraint could mean a 16- or 8-bit register.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167735 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
68fd608c2c0866064e974c3d43778c47c1cbb080 12-Nov-2012 Bill Wendling <isanbard@gmail.com> Check that the input size is correct for the given constraint.

The 'a', 'c', and 'd' constraints on i386 mean a 32-bit register. We cannot
place a 64-bit value into the 32-bit register. Error out instead of causing the
compiler to spew general badness.
<rdar://problem/12415959>


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167717 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
18f236886b02e999bea6ceff3aa90951198007cb 11-Nov-2012 Nico Weber <nicolasweber@gmx.de> Remove unneeded includes from IdentifierTable

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167694 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
463eb89d5e36b05d74c14b937384076d745b3b84 10-Nov-2012 Michael Liao <michael.liao@intel.com> Add clang support of RTM from TSX

- New options '-mrtm'/'-mno-rtm' are added to enable/disable RTM feature
- Builtin macro '__RTM__' is defined if RTM feature is enabled
- RTM intrinsic header is added and introduces 3 new intrinsics, namely
'_xbegin', '_xend', and '_xabort'.
- 3 new builtins are added to keep compatible with gcc, namely
'__builtin_ia32_xbegin', '__builtin_ia32_xend', and '__builtin_ia32_xabort'.
- Test cases for pre-defined macro and new intrinsic codegen are added.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167665 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
9410928fb8434e8d26364cee45ebc1b798aafe41 09-Nov-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> Add a SourceLocation::printToString() that returns in a std::string what dump()
writes to stderr; for debugging purposes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167629 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
ef7bceadf4b43c953855013577afac4c2fcb1d62 08-Nov-2012 Benjamin Kramer <benny.kra@googlemail.com> Set TLSSupported to false on Haiku.

Haiku does not support this (yet). Leaving it set to true leads to
configure scripts detecting __thread being available and Clang emitting
code for it, resulting in binaries the runtime_loader will refuse to
load.

Patch by Jonathan Schleifer!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167576 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
6a1f49423baf6fa0358f396f0d926a3263cb5ff9 06-Nov-2012 Daniel Dunbar <daniel@zuster.org> Basic: Windows doesn't define S_IFIFO.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167468 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
ce36ecd5a509af8fc5924d21694df36e8bc94a95 05-Nov-2012 Daniel Dunbar <daniel@zuster.org> Frontend: Add support for reading named pipes as the main file.

- The whole {File,Source}Manager is built around wanting to pre-determine the
size of files, so we can't fit this in naturally. Instead, we handle it like
we do STDIN, where we just replace the main file contents upfront.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167419 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
ca1b62a33cacee20d3bd756210d3211dd663209e 05-Nov-2012 Richard Smith <richard-llvm@metafoo.co.uk> Rename LangOptions members for address sanitizer and thread sanitizer from
*Sanitizer to Sanitize* in preparation for later patches.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167405 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
31ba273ef83d648ac78d96a4205ffad6b3e430a6 31-Oct-2012 Seth Cantrell <seth.cantrell@gmail.com> isLegalUTF8() was giving the wrong answer

invalid but not caught by isLegalUTF8(): 0xED 0x75 0x84

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167063 91177308-0d34-0410-b5e6-96231b3b80d8
onvertUTF.c
dbaf4bc5864d80a3f3e51700219c30900cde7300 29-Oct-2012 Bill Schmidt <wschmidt@linux.vnet.ibm.com> This patch adds alignment information for long double to the 64-bit PowerPC
ELF subtarget.

The existing description string is moved from PPC64TargetInfo to its
DarwinTargetInfo subclass, to avoid any changes to the Darwin ABI.
PPC64TargetInfo now has two possible description strings: one for FreeBSD,
which requires 8-byte alignment, and a default string that requires
16-byte alignment.

I've added a test for PPC64 Linux to verify the 16-byte alignment. If
somebody wants to add a separate test for FreeBSD, that would be great.

Note that there is a companion patch to update the alignment information
in LLVM, which I am committing now as well.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166927 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
e6b3dbae38f62164cab3989380cd940242d80120 29-Oct-2012 Ulrich Weigand <ulrich.weigand@de.ibm.com> Handle '*' and '#' asm constraint modifiers.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166924 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
50d46caf00c743312e0ea1f87a693d504b12ef51 26-Oct-2012 Bill Wendling <isanbard@gmail.com> Recommit Eric's code to validate ASM string's constraints and modifiers.

This code checks the ASM string to see if the output size is able to fit within
the variable specified as the output. For instance, scalar-to-vector conversions
may not really work. It's on by default, but can be turned off with a flag if
you think you know what you're doing.

This is placed under a flag ('-Wasm-operand-widths') and flag group ('-Wasm').

<rdar://problem/12284092>


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166737 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
b16abb1bd8ed94c7994836de24915703e6a4e81a 25-Oct-2012 David Tweed <david.tweed@arm.com> Modify the targets to set appropriate calling convention defaults and C variables when using a gnueabihf or aapcs-vfp target.

Tested by me and Wei-Ren Chen.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166679 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
c6cd9afd15f0f83ee07844e592d2a698416f33ca 25-Oct-2012 Bill Wendling <isanbard@gmail.com> Revert r166647 to rethink the patch...


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166655 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
a0b9ce03880b7dbab766ec80817eb17a20eba508 25-Oct-2012 Bill Wendling <isanbard@gmail.com> Add some support for diagnosing possibly mismatched constraint, type size and
modifiers. (From an idea by Eric...)
<rdar://problem/12284092>


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166647 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
02c23ebf41ae2f70da0ba7337e05c51fbfe35f7f 24-Oct-2012 Douglas Gregor <dgregor@apple.com> Make DiagnosticOptions intrusively reference-counted, and make sure
the various stakeholders bump up the reference count. In particular,
the diagnostics engine now keeps the DiagnosticOptions object alive.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166508 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
4d3ee9bc48dc1e6aea0b0d451a4b98e20b04ce00 22-Oct-2012 Daniel Dunbar <daniel@zuster.org> Fix pre-commit refacto failure.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166431 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
849289e531a97895784ab86b550e43d190618dff 22-Oct-2012 Daniel Dunbar <daniel@zuster.org> driver/Darwin: Follow up to last patch, M-class CPUs are AAPCS but not EABI.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166430 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
0872a06d1ee1a3b62ef833f955051418d18006a1 20-Oct-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> When associating file ranges of macro arguments with their
macro expansion ranges, make sure to check all the FileID
entries that are contained in the spelling range of the
expansion for the macro argument.

Fixes rdar://12537982

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166359 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
d9cad403c0f76cbbcc53efbfeee3d59f9f0b6e09 19-Oct-2012 Craig Topper <craig.topper@gmail.com> Teach getColumnNumber to use the line cache to get the start of the line if its on the same line as the last call to getLineNumber. Prevents needing to scan backwards for the new line. Fixes PR14106.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166265 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
57016dda61498294120b1a881d9e6606337b29d9 17-Oct-2012 Douglas Gregor <dgregor@apple.com> Serialize TargetOptions into an AST file, and make sure that we keep
target options around so they can be accessed at any point (rather
than keeping them transient).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166072 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
263366f9241366f29ba65b703120f302490c39ff 17-Oct-2012 Derek Schuff <dschuff@google.com> Add pnaclcall convention to Native Client targets.

Because PNaCl bitcode must be target-independent, it uses some
different bitcode representations from other targets (e.g. byval and
sret for structures). This means that without additional type
information, it cannot meet some native ABI requirements for some
targets (e.g. passing structures containing unions by value on
x86-64). To allow generation of code which uses the correct native
ABIs, we also support triples such as x86_64-nacl, which uses
target-dependent IR (as opposed to le32-nacl, which uses byval and
sret).

To allow interoperation between the two types of code, this patch adds
a calling convention attribute to be used in code compiled with the
target-dependent triple, which will generate code using the le32-style
bitcode. This calling convention does not need to be explicitly
supported in the backend because it determines bitcode representation
rather than native conventions (the backend just needs to undersand
how to handle byval and sret for the Native Client OS).

This patch implements __attribute__((pnaclcall)) to generate calls in
bitcode according to the le32 bitcode conventions, an attribute which
is accepted by any Native Client target, but issues a warning
otherwise.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166065 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
9a022bb007a3e77e1ac1330f955a239cfb1dd0fb 15-Oct-2012 Douglas Gregor <dgregor@apple.com> Teach TargetInfo to hold on to the TargetOptions with which it was
created.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165943 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
2b49d1f0ad790a8a5d514af1be211591a746cb73 15-Oct-2012 Douglas Gregor <dgregor@apple.com> Introduce the notion of excluded headers into the module map
description. Previously, one could emulate this behavior by placing
the header in an always-unavailable submodule, but Argyrios guilted me
into expressing this idea properly.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165921 91177308-0d34-0410-b5e6-96231b3b80d8
odule.cpp
6505a29cfd629e1a4820282b4cf3871efc1e696f 13-Oct-2012 Eli Friedman <eli.friedman@gmail.com> Add TargetInfo for r600.

Patch by Tom Stellard.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165850 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
186ec9c2e6db6fd5827f2078d2a6b82085be54d3 13-Oct-2012 Ted Kremenek <kremenek@apple.com> Silence dead store warning. It is conceptually possible we will
add more code that references SourceFile, so removing the dead store
doesn't seem appropriate for the long term.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165837 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
7da46f949f6ec63d7c7dcda5f49588261c669ffb 11-Oct-2012 Derek Schuff <dschuff@google.com> Properly factor Native Client defines to support NaCl as an OS
with x86/ARM architecture

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165722 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
babaf31d401310464db93627ef6b195a7ffb1029 11-Oct-2012 Derek Schuff <dschuff@google.com> Make X86_64ABIInfo clean for ABIs with 32 bit pointers, such as X32
and Native Client

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165715 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
146e5a4a787a2ebfe89a6b74e7c22d850bf1c858 11-Oct-2012 Manman Ren <mren@apple.com> X86: add F16C support in Clang

Support the following intrinsics:
_mm_cvtph_ps, _mm256_cvtph_ps, _mm_cvtps_ph, _mm256_cvtps_ph

rdar://12407875


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165685 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
eae5a820bced67465c8517793a1602dfaeed8a06 10-Oct-2012 Logan Chien <tzuhsiang.chien@gmail.com> Fix PR 11709: Change the definition of va_list to meet AAPCS requirement

AAPCS ABI Section 7.1.4 [1] specifies that va_list
should be defined as struct __va_list { void *__ap;};
And in C++, it is defined in namespace std.

[1] http://infocenter.arm.com/help/topic
/com.arm.doc.ihi0042d/IHI0042D_aapcs.pdf

Patch by Weiming Zhao.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165609 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
82bfa19fe3be324b13fdbcda46304b52c500f0d4 02-Oct-2012 Aaron Ballman <aaron@aaronballman.com> Allowing individual targets to determine whether a given calling convention is allowed or ignored with warning. This allows for correct name mangling for x64 targets on Windows, which in turn allows for linking against the Win32 APIs.

Fixes PR13782

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165015 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
cfaab00963234237b46b52996e9d72b20540e97f 30-Sep-2012 Bob Wilson <bob.wilson@apple.com> Add ARM VFPv4 feature and enable it by default for Swift.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164906 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
336bfa3fb496228a8ab4070def5b4297e5f88358 30-Sep-2012 Bob Wilson <bob.wilson@apple.com> Add armv7s and some other arm variants supported by Mach-O files.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164905 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
e2ac16b09ea66ad955752381b82fb8719d003e5e 29-Sep-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> In the Module class, add a reference to the corresponding AST file.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164873 91177308-0d34-0410-b5e6-96231b3b80d8
odule.cpp
1c84c68b6d7a92416493ab6c36f630de48c65d08 28-Sep-2012 Daniel Jasper <djasper@google.com> Set Diag.ErrorOccurred even if a DiagnosticConsumer does not want it in
diagnostic count.

If a DiagnosticConsumer sub-class overwrites IncludeInDiagnosticCounts,
this should change diagnostic counts. However, it currently also
influences Diag.ErrorOccurred, which in turn influences the behavior of
parsing and semantic analysis (in a way that can make it crash).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164824 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
4d7e0ced7f16a04aabe2d8d91cbbb52fb1162810 25-Sep-2012 Alexander Kornienko <alexfh@google.com> Macro history (de-)serialization. Deserialization currently reads only the latest macro definition. Needs more work.

Summary: Passes all tests (+ the new one with code completion), but needs a thorough review in part related to modules.

Reviewers: doug.gregor

Reviewed By: alexfh

CC: cfe-commits, rsmith

Differential Revision: http://llvm-reviews.chandlerc.com/D41

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164610 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
615a092a511cd2dfe1a5364ebf5f80e55e33034d 22-Sep-2012 Jordan Rose <jordan_rose@apple.com> Use llvm::getOrdinalSuffix to print ordinal numbers in diagnostics.

Just a refactoring of common infrastructure. No intended functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164443 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
087c65fb270d7f465f221b543731f89343032e90 20-Sep-2012 Alexander Potapenko <glider@google.com> Disable source fortification on Darwin with AddressSanitizer.

ASan doesn't play well with -D_FORTIFY_SOURCE, which is enabled by default starting at OS X 10.7


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164299 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
7de32964026e4c5ff32cbca484ffb24e73393d87 19-Sep-2012 Hal Finkel <hfinkel@anl.gov> Add e500mc and e5500 to the list of valid PPC CPU names.

Patch by Tobias von Koch!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164176 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
2df67ea86f64c2a94b973d8fda2e3c1fd53fc84d 13-Sep-2012 Silviu Baranga <silviu.baranga@arm.com> This patch introduces A15 as a target in Clang.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163804 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
9f0b1324a5352713337c75ef4a5acffd96609c6c 11-Sep-2012 Stephen Hines <srhines@google.com> Merge branch 'upstream' into merge-2012_09_10
8b0703d641f8a523eec31dd2352c4a650b6738b9 08-Sep-2012 Anton Korobeynikov <asl@math.spbu.ru> Do not construct StringRef from NULL argument.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163465 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
70a5cca8e7353e2e3bd16b7e6a47a35695803d5d 08-Sep-2012 Anton Korobeynikov <asl@math.spbu.ru> Provide some ACLE C defines. This should fix PR13796


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163464 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
e5f0588840b20897631cc8110344fd2745ef4caa 08-Sep-2012 Richard Smith <richard-llvm@metafoo.co.uk> When a bad UTF-8 encoding or bogus escape sequence is encountered in a
string literal, produce a diagnostic pointing at the erroneous character
range, not at the start of the literal.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163459 91177308-0d34-0410-b5e6-96231b3b80d8
onvertUTF.c
onvertUTFWrapper.cpp
2675b8ed4063ee1d2553cb4acad54d86b2d2047c 06-Sep-2012 Enrico Granata <egranata@apple.com> Enabling the UTF conversion routines that were previously conditionally ifdef'ed out. This change is required to support enhancements in the LLDB data formatters

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163331 91177308-0d34-0410-b5e6-96231b3b80d8
onvertUTF.c
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
ourceManager.cpp
5b86ffd219bdee7720217d5755b772726668b242 05-Sep-2012 Abramo Bagnara <abramo.bagnara@gmail.com> Allow disabling of wchar_t type.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163221 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
94a7142f74bb4a9daa53c22087b19d4568073109 02-Sep-2012 Logan Chien <tzuhsiang.chien@gmail.com> Rename ANDROIDEABI to Android.

Most of the code guarded with ANDROIDEABI are not
ARM-specific, and having no relation with arm-eabi.
Thus, it will be more natural to call this
environment "Android" instead of "ANDROIDEABI".

Note: We are not using ANDROID because several projects
are using "-DANDROID" as the conditional compilation
flag.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163088 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
600a513a0ff19c7dbedc4292866caddeceb94f57 29-Aug-2012 Simon Atanasyan <satanasyan@mips.com> Define __mips64 / __mips64__ macros for MIPS 64-bit targets.
The patch suggested by Brad Smith.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162858 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1d8ae1d7066e1e4a413c791648e3287827f3db06 29-Aug-2012 Simon Atanasyan <satanasyan@mips.com> Use getTargetDefines() virtual function in MipsTargetInfoBase successors
to define all macros for MIPS targets. Remove redundant virtual function
getArchDefines(). Two virtual functions for this task are really too much.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162853 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
d4935a0fbe0d210e33313e8b3dd6e363491612cd 29-Aug-2012 Simon Atanasyan <satanasyan@mips.com> Factor out MIPS macro definitions common for all MIPS targets.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162852 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
260e5067f3cca1630c6ed88757a15b23622b52d1 29-Aug-2012 Simon Atanasyan <satanasyan@mips.com> Define _MIPS_ARCH and _MIPS_ARCH_<cpu name> macros for MIPS targets.
The patch suggested by Logan Chien.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162840 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
80ea4bc944eb01c220eeaa004b21ad709ba928e1 24-Aug-2012 Stephen Hines <srhines@google.com> Merge branch 'upstream' into merge_2

Conflicts:
lib/Sema/SemaDeclAttr.cpp

Change-Id: If47d0d39459760017258502b4d9e859ac36a273b
9e63dc582b3bfb9ab2e80631b5311b070a73dff8 17-Aug-2012 Richard Smith <richard-llvm@metafoo.co.uk> Avoid binding a reference to a dereferenced null pointer, if we try to emit a
diagnostic before we have a source manager.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162070 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
8c019df55885e8dbe2819a6c719f5b58f83028f8 17-Aug-2012 Eric Christopher <echristo@apple.com> Remove FIXME, the constraints contain more options than the
current available documentation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162065 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
a0dfca1f030b06c7f547238f63bfedc969994fcc 17-Aug-2012 Eric Christopher <echristo@apple.com> Add a missing 'break' to ensure that we reject inline assembly
constraints we don't recognize.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162064 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
c95ad0061f093de2f73b8aab58ff3f0444d0123f 15-Aug-2012 Richard Smith <richard-llvm@metafoo.co.uk> Fix undefined behavior: reference bound to dereferenced null pointer.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161899 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
00aae5243d965aa7bcee81a39ba0900c7869be21 14-Aug-2012 Richard Smith <richard-llvm@metafoo.co.uk> Fix undefined behavior: don't bind a dereferenced null pointer to a reference.
No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161832 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
6bd3291605a3034b858c8aeecc6990fa4f979f6c 10-Aug-2012 Dylan Noblesmith <nobled@dreamwidth.org> Frontend: define _LP64 in a target-independent way

Instead of adding it to each individual subclass in
Targets.cpp, simply check the appropriate target
values.

Where before it was only on x86_64 and ppc64, it's now
also defined on mips64 and nvptx64.

Also add a bunch of negative tests to ensure it is *not*
defined on any other architectures while we're here.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161685 91177308-0d34-0410-b5e6-96231b3b80d8
argets.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
iagnostic.cpp
dentifierTable.cpp
42f74f21ece01dc8573d5377859d327fbb23b26c 09-Aug-2012 Eli Friedman <eli.friedman@gmail.com> clang support for Bitrig (an OpenBSD fork); patch by David Hill.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161546 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f0e956bb379be086b03580af4d341467c3546c04 08-Aug-2012 Hans Wennborg <hans@hanshq.net> Revert part of r161175 which was wrong for OpenBSD's PowerPC target.

Contributed by Brad Smith <brad@comstyle.com>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161481 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
ee959355b93c0648fea88dc986d196e3705407dc 03-Aug-2012 Shih-wei Liao <sliao@google.com> Apply changes to migrate to CLANG-160673-20120724.

Change-Id: I00d23ac9b893c62dca281ec771eeb5f911854bae
ndroid.mk
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
5e601dcb398f8af5465d0d1a97a7fcf38d6932ec 02-Aug-2012 Hans Wennborg <hans@hanshq.net> Add OpenBSD arch targets for powerpc, arm, mips64, mips64el and sparc.

Contributed by Brad Smith <brad@comstyle.com>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161175 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
e48667f2ca71842fa000e9fddd241309a611578b 01-Aug-2012 Hans Wennborg <hans@hanshq.net> TLS is not supported on OpenBSD

This fixes PR13502 and adds a test to keep track of which
targets support TLS and which do not.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161124 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
98be86038b1e891a05583061c55dfa974150eb2c 31-Jul-2012 Manuel Klimek <klimek@google.com> Fixes a segfault in Tooling when using pch's:
Clear the FileManager's stat cache in between running
translation units, as the stat cache loaded from a pch
is only valid for one compiler invocation.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161047 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
e43031344b17cdb345957c4acc9d39d26f86efd3 27-Jul-2012 Dmitri Gribenko <gribozavr@gmail.com> Add a function to convert a single Unicode code point to a UTF8 sequence.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160890 91177308-0d34-0410-b5e6-96231b3b80d8
onvertUTF.c
onvertUTFWrapper.cpp
866abce3b93ab01bac00e0383a753819893b868a 27-Jul-2012 NAKAMURA Takumi <geek4civic@gmail.com> clang/lib: [CMake] Reformat, alphabetize lists.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160850 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
a5a4cba88796cb1b8365ed523e8b6fdce9e512bd 24-Jul-2012 Francois Pichet <pichet2000@gmail.com> Change the way KEYNOMS is defined to be more comprehensible.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160663 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
dfd110ce5e64077ec94df195233e7a39895bf15e 22-Jul-2012 Francois Pichet <pichet2000@gmail.com> char16_t and char32_t are defined via typedef in MSVC 11 RC. So introduce a way to disable keywords under Microsoft mode.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160612 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
f9e9af7df0cea6e997ac04131c7af6ca4384b0cc 14-Jul-2012 Chad Rosier <mcrosier@apple.com> Add a per target max vector alignment field (e.g., 32-byte alignment for x86 due to
AVX). Currently, if no aligned attribute is specified the alignment of a vector is
inferred from its size. Thus, very large vectors will be over-aligned with no
benefit. Target owners should set this target max.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160209 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
5561977175c04dc2bae53b0f577a5c1ca83b96ff 13-Jul-2012 Richard Trieu <rtrieu@google.com> Modify tree printing mode for template type diffing. If a diagnostic has
multiple %diff's, only print the first tree and fallback to inline printing
for the rest of the diagnostic.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160193 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
f7226fbe677a9c7578fa0613491ed15c6dc6a5e1 12-Jul-2012 John McCall <rjmccall@apple.com> Add the ObjFW runtime. Patch by Jonathan Schleifer!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160102 91177308-0d34-0410-b5e6-96231b3b80d8
bjCRuntime.cpp
f9181a787102de3cd2005e9714d899c06c612a9c 12-Jul-2012 NAKAMURA Takumi <geek4civic@gmail.com> clang/lib/Basic/CMakeLists.txt: Add missing dependency, ClangDiagnosticComment.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160096 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
a5ef44ff5d93a3be6ca67782828157a71894cf0c 11-Jul-2012 Dmitri Gribenko <gribozavr@gmail.com> Enable comment parsing and semantic analysis to emit diagnostics. A few
diagnostics implemented -- see testcases.

I created a new TableGen file for comment diagnostics,
DiagnosticCommentKinds.td, because comment diagnostics don't logically
fit into AST diagnostics file. But I don't feel strongly about it.

This also implements support for self-closing HTML tags in comment
lexer and parser (for example, <br />).

In order to issue precise diagnostics CommentSema needs to know the
declaration the comment is attached to. There is no easy way to find a decl by
comment, so we match comments and decls in lockstep: after parsing one
declgroup we check if we have any new, not yet attached comments. If we do --
then we do the usual comment-finding process.

It is interesting that this automatically handles trailing comments.
We pick up not only comments that precede the declaration, but also
comments that *follow* the declaration -- thanks to the lookahead in
the lexer: after parsing the declgroup we've consumed the semicolon
and looked ahead through comments.

Added -Wdocumentation-html flag for semantic HTML errors to allow the user to
disable only HTML warnings (but not HTML parse errors, which we emit as
warnings in -Wdocumentation).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160078 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
ff398965a5abfaf5bc47bc022876f56a28e5b9a7 11-Jul-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> Introduce a flag in SourceManager to treat non-system source files
as "volatile", meaning there's a high enough chance that they may
change while we are trying to use them.

This flag is only enabled by libclang.
Currently "volatile" source files will be stat'ed immediately
before opening them, because the file size stat info
may not be accurate since when we got it (e.g. from the PCH).
This avoids crashes when trying to reference mmap'ed memory
from a file whose size is not what we expect.

Note that there's still a window for a racing issue to occur
but the window for it should be way smaller than before.
We can consider later on to avoid mmap completely on such files.

rdar://11612916

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160074 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
ourceManager.cpp
c6d64a26c28bbeee50e06c94c4f4c08e610327b7 11-Jul-2012 Jordan Rose <jordan_rose@apple.com> Emit -verify diagnostics even when we have a fatal error.

Previously we'd halt at the fatal error as expected, but not actually emit
any -verify-related diagnostics. This lets us catch cases that emit a
/different/ fatal error from the one we expected.

This is implemented by adding a "force emit" mode to DiagnosticBuilder, which
will cause diagnostics to immediately be emitted regardless of current
suppression. Needless to say this should probably be used /very/ sparingly.

Patch by Andy Gibbs! Tests for all of Andy's -verify patches coming soon.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160053 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
iagnosticIDs.cpp
9903e94bee8fbbec6d44fe2de91ccee46f40187f 11-Jul-2012 Justin Holewinski <justin.holewinski@gmail.com> Fix handling of curly braces in NVPTX inline asm

Fixes bug 13322

Patch by Dmitry Mikushin

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160050 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
be779598aa70a71c56e5d576947ade53e249c602 11-Jul-2012 Axel Naumann <Axel.Naumann@cern.ch> LLVM_ON_WIN32 case: use the proper key in the UniqueFiles map.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160041 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
5ba0559f2f0ddd62de16547af514dbaf93b79585 10-Jul-2012 Axel Naumann <Axel.Naumann@cern.ch> Improve r159256 following Chandler's comments:
Implement UniqueFileContainer::erase(), camelCase, add comment on future optimizations of the cache versus de-optimizations of invalidations.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159997 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
5409d28b6167032696f4915bb765a6f7db579f3f 10-Jul-2012 Richard Trieu <rtrieu@google.com> Properly update the FormattedArgs vector when the template type diffing falls
back to regular type printing.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159976 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
84f30809a2ce02183609a738aaa116d832e61da3 07-Jul-2012 Benjamin Kramer <benny.kra@googlemail.com> Wire up -mrdrnd for X86.

For some reason GCC decided to call the feature rdrnd instead of rdrand,
which requires translating it for LLVM.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159897 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1c9ae1ce8304a581d87d03bb84d89db477f61dba 06-Jul-2012 Benjamin Kramer <benny.kra@googlemail.com> Remove unreachable default case to pacify clang's -Wcovered-switch-default.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159829 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
a1b62273f8cb823e74e7b67685c0c681efb8ff9d 05-Jul-2012 Simon Atanasyan <satanasyan@mips.com> MIPS: Define __mips_dsp_rev / __mips_dspr2 / __mips_dsp macros
if -mdsp or -mdspr2 options are provided.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159774 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
d797a85866fd5ce62850dd145396b451364032a3 05-Jul-2012 Simon Atanasyan <satanasyan@mips.com> MIPS: Add -mdsp/-mno-dsp and -mdspr2/-mno-dspr2 command line options support.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159769 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1176bcdb21945c7913d684973887e6f588a49236 05-Jul-2012 Simon Atanasyan <satanasyan@mips.com> MIPS: Define __mips16 macro if -mips16 option is provided.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159753 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
bbd9916bd91eafb97cc73c2def158b6e5c124d1b 05-Jul-2012 Simon Atanasyan <satanasyan@mips.com> MIPS: Replace the pair of boolean flags by enumeration to hold selected float ABI.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159752 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
0b273efa37a38deab77dadf72540c9c07c63f8cf 05-Jul-2012 Simon Atanasyan <satanasyan@mips.com> MIPS: Add -mips16 / -mno-mips16 command line support.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159747 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
a422cd0ed4da8cb5a172498f29bb02065707c6ce 04-Jul-2012 David Chisnall <csdavec@swan.ac.uk> A few more cleanups for the GNU family of ObjC runtimes.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159708 91177308-0d34-0410-b5e6-96231b3b80d8
bjCRuntime.cpp
11d3f4cc27e6b923fc32481dc1bb5ec46c7d1f4b 03-Jul-2012 David Chisnall <csdavec@swan.ac.uk> Rename the GCC Objective-C runtime to gcc from gnu-fragile and the GNUstep
runtime to gnustep from gnu. Fix EH for the GCC runtime.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159684 91177308-0d34-0410-b5e6-96231b3b80d8
bjCRuntime.cpp
39d5fa131ff0f2de0f04b16dca086c51102cb1bf 03-Jul-2012 Hal Finkel <hfinkel@anl.gov> Add additional architecture defines for PPC targets.

Patch by Andy Gibbs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159665 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
941e47cef26fb6300a8d3e366f7c5694277e5849 03-Jul-2012 Nico Weber <nicolasweber@gmx.de> Share ConvertUTF8toWide() between Lex and CodeGen.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159634 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
onvertUTFWrapper.cpp
ec221bc2a5736458bc2281fd1e3b8cdcd3735193 03-Jul-2012 James Dennett <jdennett@google.com> Documentation cleanup: Delete a duplicated/malformed doc comment.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159628 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
529cdf4c2ef0985dd6f4b7b68ab76e6a1a5082d5 29-Jun-2012 Richard Trieu <rtrieu@google.com> Update the %diff modifer to have an alternate string print when a template tree
is selected. This will allow more flexibility when converting diagnostics to
use template type diffing.

Also updated the internal manual and test cases for correctly keeping the bold
attribute and for tree printing.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159463 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
fbf7005138d199bad238f0dd1ff509931a24ab10 28-Jun-2012 Simon Atanasyan <satanasyan@mips.com> Support MIPS DSP Rev1 intrinsics.
This patch was reviewed in the llvm-commits list by Jim Grosbach.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159366 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
446ba14432b68e5d37472180fcd4d8144207c5c5 27-Jun-2012 Axel Naumann <Axel.Naumann@cern.ch> Fix for r159256 on Windows.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159262 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
3ce42c37b0ef6b10538f5040a33d19a6e6988d05 27-Jun-2012 Axel Naumann <Axel.Naumann@cern.ch> From Vassil Vassilev:
add interface for removing a FileEntry from the cache.
Forces a re-read the contents from disk, e.g. because a tool (like cling) wants to pick up a modified file.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159256 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
246b6aa6763de8c617d564ef33123a8f3293a80e 26-Jun-2012 Richard Trieu <rtrieu@google.com> Add template type diffing to Clang. This feature will provide a better
comparison between two templated types when they both appear in a diagnostic.
Type elision will remove indentical template arguments, which can be disabled
with -fno-elide-type. Cyan highlighting is applied to the differing types.

For more formatting, -fdiagnostic-show-template-tree will output the template
type as an indented text tree, with differences appearing inline. Template
tree works with or without type elision.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159216 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
b0d8671f95fe08a220118bca29063ba4d11a9dac 21-Jun-2012 Chandler Carruth <chandlerc@gmail.com> Remove a goofy CMake hack and use the standard CMake facilities to
express library-level dependencies within Clang.

This is no more verbose really, and plays nicer with the rest of the
CMake facilities. It should also have no change in functionality.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158888 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
0b92fcb1353d2d8b31b6c485e6caa14568aca43b 20-Jun-2012 John McCall <rjmccall@apple.com> Introduce ObjCRuntime::hasWeakClassImport() and use it in the appropriate
places. I've turned this off for the GNU runtimes --- I don't know if
they support weak class import, but it's easy enough for them to opt in.

Also tweak a comment per review by Jordan.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158860 91177308-0d34-0410-b5e6-96231b3b80d8
bjCRuntime.cpp
260611a32535c851237926bfcf78869b13c07d5b 20-Jun-2012 John McCall <rjmccall@apple.com> Restructure how the driver communicates information about the
target Objective-C runtime down to the frontend: break this
down into a single target runtime kind and version, and compute
all the relevant information from that. This makes it
relatively painless to add support for new runtimes to the
compiler. Make the new -cc1 flag, -fobjc-runtime=blah-x.y.z,
available at the driver level as a better and more general
alternative to -fgnu-runtime and -fnext-runtime. This new
concept of an Objective-C runtime also encompasses what we
were previously separating out as the "Objective-C ABI", so
fragile vs. non-fragile runtimes are now really modelled as
different kinds of runtime, paving the way for better overall
differentiation.

As a sort of special case, continue to accept the -cc1 flag
-fobjc-runtime-has-weak, as a sop to PLCompatibilityWeak.

I won't go so far as to say "no functionality change", even
ignoring the new driver flag, but subtle changes in driver
semantics are almost certainly not intended.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158793 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
bjCRuntime.cpp
ersionTuple.cpp
9416d42468eacaae0ea85ab8ed134f5df1a1d142 19-Jun-2012 Meador Inge <meadori@codesourcery.com> Revert predefined decl tracking.

r158085 added some logic to track predefined declarations. The main reason we
had predefined declarations in the input was because the __builtin_va_list
declarations were injected into the preprocessor input. As of r158592 we
explicitly build the __builtin_va_list declarations. Therefore the predefined
decl tracking is no longer needed.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158732 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
2e413f977d13d83b5baf7b5e4e93fe7c390959ca 19-Jun-2012 Jordan Rose <jordan_rose@apple.com> Fix the location of the fixit for -Wnewline-eof.

It turns out SourceManager treating the "one-past-the-end" location as invalid,
but then failing to set the invalid flag properly.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158699 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
b8950b8e11272a3b9776568ea423bff016bc996d 17-Jun-2012 James Dennett <jdennett@google.com> Documentation cleanup: escaped # characters in Doxygen comments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158614 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
759a4b40cab9dd04683a548f998ebe2e443ca6b4 16-Jun-2012 NAKAMURA Takumi <geek4civic@gmail.com> clang/lib/Basic/FileManager.cpp: Detect the root directory with PathV2. It should be better fix for PR10331, or, "clang X:\foo.c" fails.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158596 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
c5613b26a24a33d7450e3d0bf315c6ccc920ce7b 16-Jun-2012 Meador Inge <meadori@codesourcery.com> Explicitly build __builtin_va_list.

The target specific __builtin_va_list types are now explicitly built instead
of injecting strings into the preprocessor input.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158592 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
d3e8eda9a685e95c29ccea52977c0e32a422e563 15-Jun-2012 James Dennett <jdennett@google.com> Documentation cleanup: delete doc comments from source files where they are
broken duplicates of comments that are in the corresponding header files.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158550 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
ileManager.cpp
7285a06a0655ed93e313305182f67edb73890247 15-Jun-2012 James Dennett <jdennett@google.com> Documentation cleanup: escape # in a Doxygen comment.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158549 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
6557d1304c84233edd854288d4f80b987ad10ed9 15-Jun-2012 James Dennett <jdennett@google.com> Documentation cleanup: escape @ in a Doxygen comment.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158548 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
02a84277864e5476b12c0ec687ed09f0b2922471 12-Jun-2012 Hal Finkel <hfinkel@anl.gov> Add PPC support for translating gcc-style -mcpu options into LLVM -target-cpu options.

This functionality is based on what is done on ARM, and enables selecting PPC CPUs
in a way compatible with gcc's driver. Also, mirroring gcc (and what is done on x86),
-mcpu=native support was added. This uses the host cpu detection from LLVM
(which will also soon be updated by refactoring code currently in backend).

In order for this to work, the target needs a list of valid CPUs -- we now accept all CPUs accepted by LLVM.
A few preprocessor defines for common CPU types have been added.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158334 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
b6af69ec6c93f4eba67b638a3f0fece23ad6954b 10-Jun-2012 Craig Topper <craig.topper@gmail.com> Add XOP feature flag.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158284 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
47d9de678162202786aa5f8aa153a7c58a4cebd4 08-Jun-2012 Douglas Gregor <dgregor@apple.com> Switch LineTableInfo to use FileID instead of int for file references,
from Tom Honermann!



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158211 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
d73ef135ba029db59c0b5649e6117845d9e39600 06-Jun-2012 Jordan Rose <jordan_rose@apple.com> Add pedantic warning -Wempty-translation-unit (C11 6.9p1).

In standard C since C89, a 'translation-unit' is syntactically defined to have
at least one "external-declaration", which is either a decl or a function
definition. In Clang the latter gives us a declaration as well.

The tricky bit about this warning is that our predefines can contain external
declarations (__builtin_va_list and the 128-bit integer types). Therefore our
AST parser now makes sure we have at least one declaration that doesn't come
from the predefines buffer.

Also, remove bogus warning about empty source files. This doesn't catch source
files that only contain comments, and never fired anyway because of our
predefines.

PR12665 and <rdar://problem/9165548>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158085 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
3dbcc889c1ce291b7aa227597d22c009d5c489e3 05-Jun-2012 Simon Atanasyan <satanasyan@mips.com> Mips: Define __mips_hard_float macro additional to __mips_single_float
when single float ABI is selected.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157996 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
31380fb01042b814c0fdac532a07531ee9c52946 04-Jun-2012 Craig Topper <craig.topper@gmail.com> Make disabling SSE levels also disable AVX and FMA.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157907 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
a7463c34448cbbd6d5262532b4baec78e27931ea 03-Jun-2012 Craig Topper <craig.topper@gmail.com> Make AES and PCLMUL features imply SSE2 as that's needed to get the right types defined.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157906 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
2ae950726990c09f790931edcf9e6763851ee077 03-Jun-2012 Craig Topper <craig.topper@gmail.com> Add fma feature flag for Intel FMA instructions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157904 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
3c0bc15afbcbbf6942a64798ba8a23bb8d9a77d9 31-May-2012 Craig Topper <craig.topper@gmail.com> Add builtin for pclmulqdq instruction.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157733 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
90ea0363ef3701b8df8d1c437749297c7ef60e19 30-May-2012 Craig Topper <craig.topper@gmail.com> SSE4A should not imply LZCNT and POPCNT. FMA4 should imply SSE4A. Add missing break at the end of btver1 feature list.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157680 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
4dfa5ad7b1f70520f02c754750209138e94b6eb5 29-May-2012 Benjamin Kramer <benny.kra@googlemail.com> Define __SSE4A__ when targeting new AMD CPUs.

This doesn't really fit the existing SSELevel so it gets an extra flag.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157630 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
2ae3a474447eede3a94a356b243a40c35c5582d2 29-May-2012 Roman Divacky <rdivacky@freebsd.org> Sparc is bigendian.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157626 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
242cb065057558e2e189e9ea289f3a51059e862d 26-May-2012 Benjamin Kramer <benny.kra@googlemail.com> Only emit one set of braces for __VERSION__, getClangFullRepositoryVersion already adds some.

No test as the output is highly dependend on the local configuration.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157520 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
2c585b991596859f39860b6094247ba027a03530 24-May-2012 Justin Holewinski <jholewinski@nvidia.com> Replace PTX back-end with NVPTX back-end in all places where Clang cares

NV_CONTRIB

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157403 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
edb66f38dbdc501342aa1f17c8a15a34ed73584d 21-May-2012 Peter Collingbourne <peter@pcc.me.uk> Teach Clang about the NVPTX backend.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157173 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
4dc34ebf2a0716bf77ba110dab6777a3fc4397dd 20-May-2012 Peter Collingbourne <peter@pcc.me.uk> CUDA: add CodeGen support for global variable address spaces.
Because in CUDA types do not have associated address spaces,
globals are declared in their "native" address space, and accessed
by bitcasting the pointer to address space 0. This relies on address
space 0 being a unified address space.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157167 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
5f9688b7c7fdeafdf530056d49f82d2ec6ca457f 10-May-2012 Sirish Pande <spande@codeaurora.org> Hexagon V5 FP support.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156567 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
51603be62ba78adeb64246b222583dcde4b20b2a 04-May-2012 Douglas Gregor <dgregor@apple.com> Synchronize the representations of DeclarationName and Selector so
that bridging between the two is free. Saves ~4k of code size,
although I don't see any measurable performance difference
(unfortunately).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156187 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
d54dff026b02303a35147224de72bb44cbb53c79 03-May-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> [PCH] When validating that the files coming from PCH did not change, also
validate that we didn't override the contents of any of such files.

If this is detected, emit a diagnostic error and recover gracefully
by using the contents of the original file that the PCH was built from.

Part of rdar://11305263

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156107 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
ourceManager.cpp
70d9b16e951db66152a1d5ecd723edab01267514 01-May-2012 Craig Topper <craig.topper@gmail.com> Enable AVX on AMD Bulldozer processors.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155900 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
3206403316fa505fbacea92c99ae13c5b664bc3e 26-Apr-2012 Evgeniy Stepanov <eugeni.stepanov@gmail.com> Define __ANDROID__ macro on -androideabi targets.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155632 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
fd93630cce9b9bce6b4d735e1277be2c7e3a7fbf 26-Apr-2012 Craig Topper <craig.topper@gmail.com> Enable AVX/AVX2 for Sandy Bridge, Ivy Bridge, and Haswell CPUs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155624 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
4ddcf3b08da0e92bf73049912d40e79c23d17148 25-Apr-2012 Chris Lattner <sabre@nondot.org> OpenBSD: Remove incorrect -pthread preprocessor define _POSIX_THREADS and replace
with _REENTRANT. Also remove undef _POSIX_THREADS in phread.h.

Patch by Brad Smith!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155535 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
fa784da5b9039ead42323bfe9ae6d33ab3c5c6b3 24-Apr-2012 Shih-wei Liao <sliao@google.com> Merge with CLANG upstream r155088.

Conflicts:
lib/Basic/Targets.cpp

Change-Id: Id80f069ae25e623967b705e9fa11cfd94dd2461c
6603ff85d415c2aa72579f1a247012b75bfc2a19 23-Apr-2012 Chandler Carruth <chandlerc@gmail.com> Revert r155363, due to the underlying patches in LLVM causing regression
test suite failures.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155371 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
ac28eca18a9f0a343c78ba90b02dfe52302c1f19 23-Apr-2012 Sirish Pande <spande@codeaurora.org> Hexagon V5 (floating point) support in cfe.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155363 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
103f41d0e72a9e52a07e19cbde58c3afc8735098 18-Apr-2012 Chandler Carruth <chandlerc@gmail.com> Revert some Hexagon builtin commits to match reverts done to LLVM in
r155047. See the LLVM log for the primary motivation:
http://llvm.org/viewvc/llvm-project?rev=155047&view=rev

Primary commit r154828:
- Several issues were raised in review, and fixed in subsequent
commits.
- Follow-up commits also reverted, and which should be folded into the
original before reposting:
- r154837: Re-add the 'undef BUILTIN' thing to fix the build.
- r154928: Fix build warnings, re-add (and correct) header and
license
- r154937: Typo fix.

Please resubmit this patch with the relevant LLVM resubmission.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155048 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
8b2a5d2ac07229ce64cc04204118ce0296ea0ea7 18-Apr-2012 Simon Atanasyan <satanasyan@mips.com> MIPS: Followup to r154606. Expand list of accepted MIPS target features in the MipsTargetInfoBase::setFeatureEnabled() routine.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154998 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
93a49944e0e68e32bc22d45d44ee136b34beffb3 16-Apr-2012 Fariborz Jahanian <fjahanian@apple.com> objective-c modern translator: buildit objc bool
type for rewriter project will be BoolTy.
// rdar://11231426.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154861 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
7ac715fd3118362f14574c312b044d22e3afeee9 16-Apr-2012 Sirish Pande <spande@codeaurora.org> Hexagon V5(Floating Point) support.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154828 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
10e1629dc339af33989e6fcabb3fd2214d6322bc 12-Apr-2012 Simon Atanasyan <satanasyan@mips.com> MIPS: Initialize MIPS CPU's name by default value.
Otherwise MipsTargetInfoBase::getDefaultFeatures() might return an invalid
features set with an empty feature name.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154606 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
d2953ce57a4f1b0a6884b3d6b35266ab4f79fa7f 06-Apr-2012 Benjamin Kramer <benny.kra@googlemail.com> SourceManager: Vectorize ComputeLineNumbers for SSE2.

This method is very hot, it is called when emitting diagnostics, in -E mode
and for many #pragma handlers. It scans through the whole source file to
count newlines, records and caches them in a vector.

The speedup from vectorization isn't very large, as we fall back to bytewise
scanning when we hit a newline. There might be a way to avoid leaving the sse
loop but everything I tried didn't work out because a call to push_back
clobbers xmm registers.

About 2% speedup on average on "clang -E > /dev/null" of all .cpp files in
clang's lib/Sema.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154204 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
9091389771f46e531c9c42012f8e0ab5c072e336 05-Apr-2012 Simon Atanasyan <satanasyan@mips.com> Move some MIPS target macro definitions from class Mips32TargetInfoBase
to the base class MipsTargetInfoBase. These macros are applicable for both
32/64-bits targets.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154116 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
7a938fa66be42710b034a79106de337a275fd265 04-Apr-2012 Chad Rosier <mcrosier@apple.com> [driver] Create a new -mfpmath= option, which is used to control whether clang
uses Neon instructions for single-precision FP.

-mfpmath=neon is analogous to passing llc -mattr=+neonfp.
-mfpmath=[vfp|vfp2|vfp3|vfp4] is analogous to passing llc -mattr=-neonfp.

rdar://11108618


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154046 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
0ea6164a7ff685f64ddfe3ec983a2b052ea91afb 03-Apr-2012 Eric Christopher <echristo@apple.com> Add more constraint registers for mips.

Patch by Jack Carter. Testcase cleanup by me.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153921 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
6903313102c4e1ca598305850cc209b62711b1b6 29-Mar-2012 Jim Grosbach <grosbach@apple.com> ARM backend knows about cortex-m4. The front end should too.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153678 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
dde3bdb62cd6b0a961ec51a03f494e3aedccb453 29-Mar-2012 Jan Wen Voung <jvoung@google.com> Define __LITTLE_ENDIAN__ for le32, since "le" stands for little endian.
Add a test for this too.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153616 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
fb02784df0a218532018d8c54e3ca7e78c2f5f0a 28-Mar-2012 David Chisnall <csdavec@swan.ac.uk> Fix the type of wchar_t on Solaris.

Patch by Dmitri Shubin!



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153585 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
d1f853d73d7374a410d9458b04add71eb98d22b9 27-Mar-2012 Eric Christopher <echristo@apple.com> Add better support for $fp and $sp for mips inline asm support.

Patch by Jack Carter.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153530 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
d316862f4fb281ec08a2e45cd3e5580574adb889 24-Mar-2012 Shih-wei Liao <sliao@google.com> Merge branch 'upstream' into sliao_d
ad8d8a31b010ceac4cad2553f16fc1a77c4b2e5e 24-Mar-2012 Akira Hatanaka <ahatanaka@mips.com> Add support for MIPS' floating ABIs (hard, soft and single) to clang driver.

Patch by Simon Atanasyan.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153348 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
c0765a06ddf3dc7e975c4010a9a3ed5859e1d5c8 14-Mar-2012 Aaron Ballman <aaron@aaronballman.com> No longer defining LP64 in 64-bit builds on platforms which are not LP64.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152740 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
3054f097f813d19090bdb23645dcd48df71d1a89 13-Mar-2012 Daniel Dunbar <daniel@zuster.org> [Basic] Fix up DiagnosticBuilder::{FlushCounts,Emit} to be inline.

- This is much more important than it appears at first glance...

The intended design of DiagnosticBuilder was that it never escape and that all
its members would get lowered to registers by the compiler. By fixing Emit here,
the compiler can completely eliminate the DiagnosticBuilder object and never
need to push those registers back into it.

Unfortunately, Sema has broken DiagnosticBuilder in other ways (by introducing
SemaDiagnosticBuilder), so we don't get the fill impact of this, but it is still
good for 30k reduction in code size. I'll work on fixing the
SemaDiagnosticBuilder problems next.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152669 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
efe9c0dffc174d92c255e1ec77f791ef007102dc 13-Mar-2012 Roman Divacky <rdivacky@freebsd.org> Fix the long double to be of width/align 64. Rename va_list_test to
powerpc_types and add testing for the (long) double there.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152647 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
981e279b95f3a71e2268124b1abaae050ec200dc 13-Mar-2012 Daniel Dunbar <daniel@zuster.org> [Basic] Stop using a SmallVector<> for Diagnostic. This drops Clang binary size
by ~%.3/~100k in my build -- simply by eliminating the horrible code bloat coming
from the .clear() of the SmallVector<FixItHint>, which does a std::~string, etc.
- My understanding is we don't ever emit arbitrary numbers of fixits, so I just
moved us to using a statically sized array like we do for arguments and
ranges.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152639 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
e3d175da72f9c29ae18ff8aae53b992402895b63 13-Mar-2012 Roman Divacky <rdivacky@freebsd.org> Long double is just double on FreeBSD/{PPC,PPC64}.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152632 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
e45b9b71b9ead9873c50ccd149a10f554f71bd9f 12-Mar-2012 James Molloy <james.molloy@arm.com> Use ZeroLengthBitfieldAlignment for AAPCS, as well as APCS-GNU.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152552 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
0be8fb5bdfe7e07a57f07a740649ec8bfb690284 12-Mar-2012 Nick Lewycky <nicholas@mxc.ca> Fix typo in comment, 'langauge' -> 'language'.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152547 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
49d517467c3dcd2c67e8a6c740ba5160e37625f7 08-Mar-2012 Richard Smith <richard-llvm@metafoo.co.uk> When checking the encoding of an 8-bit string literal, don't just check the
first codepoint! Also, don't reject empty raw string literals for spurious
"encoding" issues. Also, don't rely on undefined behavior in ConvertUTF.c.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152344 91177308-0d34-0410-b5e6-96231b3b80d8
onvertUTF.c
fddfbdbf143864c15ddfbda53e7c4851426bfefa 07-Mar-2012 Andrew Trick <atrick@apple.com> More git-svn compatible version string, by request.

If you're using git-svn, the clang and llvm repository will typically
map to a different revision.

Before we had:
clang version 3.1 (trunk 152167 trunk 152162)

After this change:
clang version 3.1 (trunk 152167) (llvm/trunk 152162)

So it's self-descriptive with an extra parens group. Which is more
compatible with version string parsers is probably debatable, but this
style was requested.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152183 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
30660a898545416f0fea2d717f16f75640001e38 06-Mar-2012 Ted Kremenek <kremenek@apple.com> Add new code migrator support for migrating existing Objective-C code to use
the new Objective-C NSArray/NSDictionary/NSNumber literal syntax.

This introduces a new library, libEdit, which provides a new way to support
migration of code that improves on the original ARC migrator. We now believe
that most of its functionality can be refactored into the existing libraries,
and thus this new library may shortly disappear.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152141 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
91932089c31e1233f0c478b03412e90a65e07ad2 05-Mar-2012 Stephen Hines <srhines@google.com> Merge branch 'upstream' into merge-20120305

Conflicts:
lib/Basic/Targets.cpp

Change-Id: Ib76c138030a701355ce39a6eda1a89a79f401667
713575afdac1f31de39b4a730143b8d96eeadb6d 05-Mar-2012 Benjamin Kramer <benny.kra@googlemail.com> TargetInfo: create less temporary strings.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152029 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
178a9b8b22cb77b4291bf076c0cd8d6561c7e711 02-Mar-2012 Hal Finkel <hfinkel@anl.gov> Fix an ABI problem with ptrdiff_t and intptr_t on PPC32

ptrdiff_t on PPC32 on Linux, etc. should be int not long.
This does not matter for C, but it does matter for C++ because of
name mangling.

The preprocessor test has been changed accordingly.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151935 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
edd1caec02d5a698594ed4070574974b6b2b49e8 02-Mar-2012 Benjamin Kramer <benny.kra@googlemail.com> Use tabs instead of spaces.

No, really, make doesn't work with spaces.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151920 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
f8e5d4cf39220e9b7c7ee744f634fce6dec28a76 02-Mar-2012 Jia Liu <proljc@gmail.com> clang -v support for separate clang.git and llvm.git, patch by Andrew Trick.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151910 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
ersion.cpp
b4f0bd6864f33bc2fd8246f1f841d87e60c4ffc8 02-Mar-2012 David Chisnall <csdavec@swan.ac.uk> Add the Solaris support directory to the header search when using libc++.

Unconditionally define __C99FEATURES__ when using C++ on Solaris. This is a
(hopefully temporary) work around for libc++ exposing C99-but-not-C++98
features in C++98 mode.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151889 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f15e1143dcb39396a1b62e509e59cacaabbc4880 01-Mar-2012 Ted Kremenek <kremenek@apple.com> Moving tagging of '__experimental_modules_import' IdentifierInfo out of
IndentifierTable::get() and into IdentifierTable's constructor.

This gets a 0.7% reducing on lexing time for Cocoa.h, and
about the same for PCH generation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151854 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
32ad2ee2618745ce3da51c2ae066ed5f21157c07 01-Mar-2012 Ted Kremenek <kremenek@apple.com> Change @import to @__experimental_modules_import. We are not ready to commit to a particular syntax for modules,
and don't have time to push it forward in the near future.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151841 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
165329c1d134d000904d6e08b1d166bf34e05517 28-Feb-2012 David Chisnall <csdavec@swan.ac.uk> Some more Solaris fixes. Now successfully building libc++ on Solaris with clang (and linking clang against it).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151632 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
a6c10681e57c292e16a18bdb9891c8db6ebe5c83 26-Feb-2012 Benjamin Kramer <benny.kra@googlemail.com> Move FullSourceLoc::dump into the .cpp file, the used attribute made us emit this into every TU that includes SourceLocation.h.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151493 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
341785ec52f87c0803ba52dc88faac4e136f8593 22-Feb-2012 Bill Wendling <isanbard@gmail.com> More ArrayRef-ification of methods.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151152 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
a4c29b6e55c9d4ef44a51c45c6785e8b4fe9deed 21-Feb-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> [PCH] Recover gracefully if the ASTReader detects that a file is different
from the one stored in the PCH/AST, while trying to load a SLocEntry.

We verify that all files of the PCH did not change before loading it but this is not enough because:

- The AST may have been 1) kept around, 2) to do queries on it.
- We may have 1) verified the PCH and 2) started parsing.

Between 1) and 2) files may change and we are going to have crashes because the rest of clang
cannot deal with the ASTReader failing to read a SLocEntry.

Handle this by recovering gracefully in such a case, by initializing the SLocEntry
with the info from the PCH/AST as well as reporting failure by the ASTReader.

rdar://10888929

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151004 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
c93dc7889644293e318e19d82830ea2acc45b678 20-Feb-2012 Dylan Noblesmith <nobled@dreamwidth.org> Basic: import IntrusiveRefCntPtr<> into clang namespace

The class name is long enough without the llvm:: added.
Also bring in RefCountedBase and RefCountedBaseVPTR.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150958 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
48fad493cb452b7c735f29639959ec42c1a9212c 17-Feb-2012 David Chisnall <csdavec@swan.ac.uk> On Solaris, define some standard macros that the Solaris headers require in
order to not be broken (by Solaris standards).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150822 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
6c44886ed05d7804bfd7b80857b81fd3477079f6 15-Feb-2012 David Blaikie <dblaikie@gmail.com> Provide common include for all diagnostic headers.

Reviewed by Ted Kremenek.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150616 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
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
iagnosticIDs.cpp
ceb15656fbab9ee1da319afa4934b8f6a5964758 15-Feb-2012 David Blaikie <dblaikie@gmail.com> Remove the unuseful -fdiagnostics-show-name

This option was added in r129614 and doesn't have any use case that I'm aware
of. It's possible that external tools are using these names - and if that's
the case we can certainly reassess the functionality, but for now it lets us
shave out a few unneeded bits from clang.

Move the "StaticDiagNameIndex" table into the only remaining consumer, diagtool.
This removes the actual diagnostic name strings from clang entirely.

Reviewed by Chris Lattner & Ted Kremenek.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150612 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
b089c4d91ac70f7ddfd3a36cd605d7982eefe41d 11-Feb-2012 Eli Friedman <eli.friedman@gmail.com> Set UserLabelPrefix and MCountName correctly for DragonFly BSD. Patch by Sascha Wildner.

Setting UserLabelPrefix correctly fixes PR11949.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150280 91177308-0d34-0410-b5e6-96231b3b80d8
argets.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
iagnosticIDs.cpp
dfaee4922b990fbf33808b91b961dc27df585030 08-Feb-2012 Chad Rosier <mcrosier@apple.com> Fix indentation and an 80-column violation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150010 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
d7a3e2c5f61cd4893f95b69a424fe4def3aa0f69 07-Feb-2012 Benjamin Kramer <benny.kra@googlemail.com> Revert my patches which removed Diagnostic.h includes by moving some operator overloads out of line.

This seems to negatively affect compile time onsome ObjC tests
(which use a lot of partial diagnostics I assume). I have to come
up with a way to keep them inline without including Diagnostic.h
everywhere. Now adding a new diagnostic requires a full rebuild
of e.g. the static analyzer which doesn't even use those diagnostics.

This reverts commit 6496bd10dc3a6d5e3266348f08b6e35f8184bc99.
This reverts commit 7af19b817ba964ac560b50c1ed6183235f699789.
This reverts commit fdd15602a42bbe26185978ef1e17019f6d969aa7.
This reverts commit 00bd44d5677783527d7517c1ffe45e4d75a0f56f.
This reverts commit ef9b60ffed980864a8db26ad30344be429e58ff5.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150006 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
3f22509ebf91aa96658ca6e5c5c0b926d8d62e34 07-Feb-2012 Chad Rosier <mcrosier@apple.com> In r149662, setDiagnosticMapping was modified to not allow warnings mapped to
MAP_ERROR to be remapped to MAP_WARNING. These new APIs are being added to
allow the diagnostic mapping's "no Werror" bit to be set, and potentially
downgrade anything already mapped to be a warning.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150001 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
f7ccbad5d9949e7ddd1cbef43d482553b811e026 05-Feb-2012 Dylan Noblesmith <nobled@dreamwidth.org> Basic: import SmallString<> into clang namespace

(I was going to fix the TODO about DenseMap too, but
that would break self-host right now. See PR11922.)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149799 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
ileManager.cpp
dentifierTable.cpp
6f42b62b6194f53bcbc349f5d17388e1936535d7 05-Feb-2012 Dylan Noblesmith <nobled@dreamwidth.org> Basic: import OwningPtr<> into clang namespace

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149798 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
argets.cpp
8fe83e1df954d72c0f4ffc15d20a5222ec151c21 04-Feb-2012 Benjamin Kramer <benny.kra@googlemail.com> Move a method from IdentifierTable.h out of line and remove the SmallString include.

Fix all the transitive include users.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149783 91177308-0d34-0410-b5e6-96231b3b80d8
uiltins.cpp
iagnostic.cpp
dentifierTable.cpp
ef9b60ffed980864a8db26ad30344be429e58ff5 04-Feb-2012 Benjamin Kramer <benny.kra@googlemail.com> Move Storage and StorageAllocator out of the PartialDiagnostic class so we can forward declare them.

Let ASTContext allocate the storage in its BumpPtrAllocator.
This will help us remove ASTContext's depedency on PartialDiagnostic.h soon.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149780 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
cbf46a0b2bb2b47d6e13437e0d52cc583c5ce539 03-Feb-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> Change the fixed array of FixitHints to a SmallVector to lift off
the limit on the number of fixits.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149676 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
iagnosticIDs.cpp
7a0a31ce0cd38147bfe853f71a3f7261444ddf4c 03-Feb-2012 Chad Rosier <mcrosier@apple.com> [frontend] Don't allow a mapping to a warning override an error/fatal mapping.
rdar://10736625

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149662 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
2f04f1843ca0ffca13b8b0d4dadd1f50dffb38b8 02-Feb-2012 Douglas Gregor <dgregor@apple.com> Back out my heinous hack that tricked the module generation mechanism
into using non-absolute system includes (<foo>)...

... and introduce another hack that is simultaneously more heineous
and more effective. We whitelist Clang-supplied headers that augment
or override system headers (such as float.h, stdarg.h, and
tgmath.h). For these headers, Clang does not provide a module
mapping. Instead, a system-supplied module map can refer to these
headers in a system module, and Clang will look both in its own
include directory and wherever the system-supplied module map
suggests, then adds either or both headers. The end result is that
Clang-supplied headers get merged into the system-supplied module for
the C standard library.

As a drive-by, fix up a few dependencies in the _Builtin_instrinsics
module.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149611 91177308-0d34-0410-b5e6-96231b3b80d8
odule.cpp
48b68a0dc345b3208cbd9dda719b9b3ec167c8c2 01-Feb-2012 Bob Wilson <bob.wilson@apple.com> Use the new Triple::getMacOSXVersion function in another place.

I removed support for "*-darwin*-iphoneos" triples, since we now have
iOS listed as a separate OS in the triples.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149455 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
6e1d2eaa7d7f1008a5bac12f73fbf6167802a46d 31-Jan-2012 Nico Weber <nicolasweber@gmx.de> Fix "long double" and __SIZE_TYPE__ on powerpc, now with test fix.

Fixes PR11867. Patch from Jeremy Huddleston!



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149334 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
3128fa1a5db26b288521e2b8136c6f795d34bc4f 31-Jan-2012 Nico Weber <nicolasweber@gmx.de> Revert r149285, it breaks test/Preprocessor/init.c.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149301 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
acd8c513b9db3a166b5409cd8e75712a7157b7b6 30-Jan-2012 Nico Weber <nicolasweber@gmx.de> Fix "long double" and __SIZE_TYPE__ on powerpc.

Fixes PR11867. Patch from Jeremy Huddleston!



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149285 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
e727d21d3fd5f6f68d9e7a260bbf84dc2fc8ae3a 30-Jan-2012 Douglas Gregor <dgregor@apple.com> Introduce TargetInfo::hasFeature() to query various feature names in
each of the targets. Use this for module requirements, so that we can
pin the availability of certain modules to certain target features,
e.g., provide a module for xmmintrin.h only when SSE support is
available.

Use these feature names to provide a nearly-complete module map for
Clang's built-in headers. Only mm_alloc.h and unwind.h are missing,
and those two are fairly specialized at the moment. Finishes
<rdar://problem/10710060>.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149227 91177308-0d34-0410-b5e6-96231b3b80d8
odule.cpp
argets.cpp
dc58aa71026cce539ca9b5c2c52cc4efc7bd77fe 30-Jan-2012 Douglas Gregor <dgregor@apple.com> Thread a TargetInfo through to the module map; we'll need it for
target-specific module requirements.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149224 91177308-0d34-0410-b5e6-96231b3b80d8
odule.cpp
4188760f6bb20f91c6883dffd89204419f852dee 29-Jan-2012 John McCall <rjmccall@apple.com> Complain about attempts to use 'protected' visibility on targets
like Darwin that don't support it. We should also complain about
invalid -fvisibility=protected, but that information doesn't seem
to exist at the most appropriate time, so I've left a FIXME behind.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149186 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
9f1c49c57d8a5215c3f662b0f00e830a0b06d6de 28-Jan-2012 Bob Wilson <bob.wilson@apple.com> Use defined-at-zero behavior for CLZ/CTZ builtins on PowerPC.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149181 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
82e6411d004064a29f03a3ea8b8919f297bfa843 28-Jan-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> DiagnosticsEngine::setMappingToAllDiagnostics() does not need to return bool,
caught by Chad.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149173 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
a1f1fad8b60e1cb9d21a40a37f2e03150bcbeb6f 27-Jan-2012 Douglas Gregor <dgregor@apple.com> Introduce module attributes into the module map grammar, along with a
single attribute ("system") that allows us to mark a module as being a
"system" module. Each of the headers that makes up a system module is
considered to be a system header, so that we (for example) suppress
warnings there.

If a module is being inferred for a framework, and that framework
directory is within a system frameworks directory, infer it as a
system framework.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149143 91177308-0d34-0410-b5e6-96231b3b80d8
odule.cpp
11583c757bac6ce5c342f2eb572055dd2619a657 27-Jan-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> Due to a bug, -Wno-everything works like -Weverything. Fix the bug by having
-Wno-everything remap all warnings to ignored.

We can now use "-Wno-everything -W<warning>" to ignore all warnings except
specific ones.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149121 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
iagnosticIDs.cpp
8b30a9379f730875ba8fb2d0fe2d43611e0c20ff 26-Jan-2012 Bob Wilson <bob.wilson@apple.com> Make clz/ctz builtins defined for zero on ARM targets. rdar://10732455

ARM supports clz and ctz directly and both operations have well-defined
results for zero. There is no disadvantage in performance to using the
defined-at-zero versions of llvm.ctlz/cttz intrinsics. We're running into
ARM-specific code written with the assumption that __builtin_clz(0) == 32,
even though that value is technically undefined. The code is failing now
because of llvm optimizations that are taking advantage of the undef
behavior (specifically svn r147255). There's nothing wrong with that
optimization on x86 where any incorrect assumptions about __builtin_clz(0)
will quickly be exposed. For ARM, though, optimizations based on that undef
behavior are likely to cause subtle bugs. Other targets with defined-at-zero
clz/ctz support may want to override the default behavior as well.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149086 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
9ec60dfe771ff28a84889dced6f8fd3748d3d55e 20-Jan-2012 Sebastian Pop <spop@codeaurora.org> rename -ccc-host-triple into -target

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148582 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
9bc23ba9e4d06b6619ab6df2995bf7aac929a8fd 17-Jan-2012 Anton Yartsev <anton.yartsev@gmail.com> fix for PR11655
changes i64 alignment from 64 to 32 for powerpc-darwin

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148345 91177308-0d34-0410-b5e6-96231b3b80d8
argets.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
dentifierTable.cpp
odule.cpp
argets.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
iagnosticIDs.cpp
31cbe684302a5ccb001fa2131c0e4aeaa372f5c0 13-Jan-2012 Eli Friedman <eli.friedman@gmail.com> Revert r148138; it's causing test failures.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148141 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
43115d4904431917ef6852ee089a8520b9940ba5 13-Jan-2012 Sebastian Pop <spop@codeaurora.org> remove assertions in the Hexagon backend specific clang driver

Patch from Jyotsna Verma:

I have made the changes to remove assertions in the Hexagon backend
specific clang driver. Instead of asserting on invalid arch name, it has
been modified to use the default value.

I have changed the implementation of the CPU flag validation for the
Hexagon backend. Earlier, the clang driver performed the check and
asserted on invalid inputs. In the new implementation, the driver passes
the last CPU flag (or sets to "v4" if not specified) to the compiler (and
also to the assembler and linker which perform their own check) instead of
asserting on incorrect values. This patch changes the setCPU function for
the Hexagon backend in clang/lib/Basic/Targets.cpp which causes the
compiler to error out on incorrect CPU flag values.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148139 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
edd4f3c39101912605c2a1868dd2be71aa218798 13-Jan-2012 Sebastian Pop <spop@codeaurora.org> rename -ccc-host-triple into -target

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148138 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
35dd732fdff0e31ef0a24d76b7106597862adfcf 11-Jan-2012 Evgeniy Stepanov <eugeni.stepanov@gmail.com> Fix -mfpu parsing on ARM.

- Support gcc-compatible vfpv3 name in addition to vfp3.
- Support vfpv3-d16.
- Disable neon feature for -mfpu=vfp* (yes, we were emitting Neon instructions
for those!).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147943 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
5660aa6c6828015086d50f7f3a4791574edbeaaf 10-Jan-2012 Benjamin Kramer <benny.kra@googlemail.com> Add definitions for AMD's bobcat (aka btver1)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147849 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
5c65e4f8e02ff4196309b4c490f2ea2a56a0103b 10-Jan-2012 Benjamin Kramer <benny.kra@googlemail.com> Enable POPCNT and LZCNT with sse4a.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147848 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
448f68d7ef0aa1b8f3016af00ce4851c8526805f 10-Jan-2012 Benjamin Kramer <benny.kra@googlemail.com> Factor the repetitive cpu macro definition into a helper function.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147847 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
05fe4b5ce5cc14b95b4da1bbeb4e4e90282ae1dc 09-Jan-2012 Craig Topper <craig.topper@gmail.com> Merge AVX/AVX2 into the SSE level.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147771 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
42378be9a055050c86e3e5cf9c456b40342de950 06-Jan-2012 Joerg Sonnenberger <joerg@bec.de> __FLT_EVAL_METHOD__ should be 1 on NetBSD/i386, since it defaults to
"double" rounding.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147669 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
b7a7819473709c01ea024a2dc15e99d38f0f8760 05-Jan-2012 Douglas Gregor <dgregor@apple.com> Store the submodules of a module in source order, as they are stored
in the module map. This provides a bit more predictability for the
user, as well as eliminating the need to sort the submodules when
serializing them.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147564 91177308-0d34-0410-b5e6-96231b3b80d8
odule.cpp
b3453a810407cd8d7f526c6faabe9a4c9f0a6f67 04-Jan-2012 Benjamin Kramer <benny.kra@googlemail.com> Penryn doesn't support sse4.2, don't enable it in the first place.

While the code took care of disabling the sse42 flag it didn't know
about popcnt. This broke -march=native on penryn.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147531 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1ac13c37d8af0145b7e03fea70b7b1476b8828c9 03-Jan-2012 Douglas Gregor <dgregor@apple.com> Re-uglify #public and #private to #__public_macro and #__private_macro.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147469 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
c13a34b690d2dc2a03c2fea75a0a1438636c19ce 03-Jan-2012 Douglas Gregor <dgregor@apple.com> Eliminate the uglified keyword __import_module__ for importing
modules. This leaves us without an explicit syntax for importing
modules in C/C++, because such a syntax needs to be discussed
first. In Objective-C/Objective-C++, the @import syntax is used to
import modules.

Note that, under -fmodules, C/C++ programs can import modules via the
#include mechanism when a module map is in place for that header. This
allows us to work with modules in C/C++ without committing to a syntax.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147467 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
94ad28b31433058445a27db722f60402ee820bea 03-Jan-2012 Douglas Gregor <dgregor@apple.com> Under -fmodules, accept #public <macroname> and #private <macroname>
to make a macro public (the default for headers) or private,
respectively.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147455 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
51f564f80d9f71e175635b452ffeeeff899e9bf1 31-Dec-2011 Douglas Gregor <dgregor@apple.com> Implement support for module requirements, which indicate the language
features needed for a particular module to be available. This allows
mixed-language modules, where certain headers only work under some
language variants (e.g., in C++, std.tuple might only be available in
C++11 mode).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147387 91177308-0d34-0410-b5e6-96231b3b80d8
odule.cpp
6a511e14074e186328020fce78fe0c33deb64d1b 30-Dec-2011 Craig Topper <craig.topper@gmail.com> Add FMA4 feature flag. Intrinsics coming soon. Also make sse4a feature flag imply sse3. Matches gcc behavior.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147370 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
e14e08b2552b43d81a295401ddf9b8da2c499233 29-Dec-2011 Craig Topper <craig.topper@gmail.com> Add popcnt feature flag to match gcc. This flag is implied when sse42 is enabled, but can be disabled separately. Move popcnt intrinsics to popcntintrin.h to match gcc.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147340 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
b406669fea7c8db83a377f368f1689c848296974 28-Dec-2011 Benjamin Kramer <benny.kra@googlemail.com> Add a target hook for FLT_EVAL_METHOD and use it to set the value on x86 with sse disabled.

x87 math evaluates everything with 80 bits precision, so we have to set FLT_EVAL_METHOD
to "2".

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147311 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
fb8c56d6047f21f9bd4ca9c916c23023152d9602 26-Dec-2011 Eli Friedman <eli.friedman@gmail.com> Partially revert r147195; lib/Basic/Version.cpp conditionally depends on config.h.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147282 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
31ceea096563c42e083eded27f6fe19ed244c0a1 25-Dec-2011 Craig Topper <craig.topper@gmail.com> Add BMI, BMI2, and LZCNT feature flags to enable adding intrinsics.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147262 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
ffbe9b9c64ab2e94b9d48ec56e511f75826fc80a 23-Dec-2011 Benjamin Kramer <benny.kra@googlemail.com> Mass rename C1x references to C11. The name hasn't proliferated like "C++0x" so this patch is surprisingly small.

Also drop -Wc1x-extensions in favor of -Wc11-extensions. I don't think we need to keep this around for compatibility.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147221 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
1770e0dadcab966990cca4d7516253c886fd907c 22-Dec-2011 Dylan Noblesmith <nobled@dreamwidth.org> remove unneeded config.h includes



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147195 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
ersion.cpp
e6a24e83e71f361c7b7de82cf24ee6f5ddc7f1c2 22-Dec-2011 Eli Friedman <eli.friedman@gmail.com> Add support for bitcasts to vector type in Evaluate.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147137 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
cee5ec9df479994e4ba27fb65b7ded5bb5a980eb 21-Dec-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Fix bugs in SourceManager::computeMacroArgsCache() and add a unit test for it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147057 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
d7711ec430fde5706f85ba6c4b85283a8e743ff7 21-Dec-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> For SourceManager::isBeforeInTranslationUnit(), have it consider macro arg expanded
token locations as coming before the closing ')' of a function macro expansion.

Include a unit test for SourceManager.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147056 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
9bddf4324a067b630c0f1147f283de0930092f5a 21-Dec-2011 Nick Lewycky <nicholas@mxc.ca> Bump suitable alignment on darwin ppc 32/64 and x86-32 to 16 bytes. I don't
actually know about the other OSes on X86-32 besides Linux...


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147034 91177308-0d34-0410-b5e6-96231b3b80d8
argets.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
iagnostic.cpp
ileSystemStatCache.cpp
00852e41261f9860233d3b407fce0506346cdacb 19-Dec-2011 Fariborz Jahanian <fjahanian@apple.com> objc-arc: bridge casts in non-objc-arc mode are ignord.
But, warn too. // rdar://10597832


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146904 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
argets.cpp
098eaffc0c1784567ddccfe6f976ced6e904552e 19-Dec-2011 Dylan Noblesmith <nobled@dreamwidth.org> SourceManager: use getBufferSize()

Forming an out of bounds pointer to check if it's out
of bounds was undefined behavior.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146861 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
22d141452d67b08dc30f28964d00b718f2994d0a 17-Dec-2011 Ted Kremenek <kremenek@apple.com> Update CMake dependencies.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146836 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
2b03bb0314cea77f0a8740609a9cccb2253ec1b1 17-Dec-2011 Craig Topper <craig.topper@gmail.com> Add -mavx2 and -mno-avx2 command line support. Also add core-avx2 processor type.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146835 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
7ec59c78f1e19157767648cbe3f0e3630ca1afe7 16-Dec-2011 Nick Lewycky <nicholas@mxc.ca> Add the value of "suitably aligned" from the C++11 standard to Basic/TargetInfo.
This is equal to alignof(std::max_align_t) on the platform and equal to the
alignment provided by malloc. (Platform owners please double-check your
platform's value.)


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146762 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
9952070fa22695845c45869a501bc8651ca36e78 16-Dec-2011 Nick Lewycky <nicholas@mxc.ca> Fix 80-column violation and whitespace. No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146761 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
08d6e032a2a0a8656d12b3b7b93942987bb12eb7 16-Dec-2011 Richard Smith <richard-llvm@metafoo.co.uk> C++11 constexpr: Add note stacks containing backtraces if constant evaluation
fails within a call to a constexpr function. Add -fconstexpr-backtrace-limit
argument to driver and frontend, to control the maximum number of notes so
produced (default 10). Fix APValue printing to be able to pretty-print all
APValue types, and move the testing for this functionality from a unittest to
a -verify test now that it's visible in clang's output.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146749 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
9b879db75be6b8db4a7c804e9bba4c07c4cfa81c 16-Dec-2011 Logan Chien <loganchien@google.com> Apply changes to migrate to clang upstream r146715.

Change-Id: I7a40ad93f4cc76a6e748ba314ac06a1bef473bbf
ndroid.mk
298aaf2c97ab7c4d5bd3a8e8d8112e3bc77b29b6 16-Dec-2011 Logan Chien <loganchien@google.com> Merge with clang upstream r146715 (Dec 16th 2011)

Change-Id: I66024a7b6eb0ee37d7b3ff7ce41c0bfb4b514bee
99ee0851015f0d334fa319c4ab9e14869520ebe5 16-Dec-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> In SourceManager::~SourceManager do a sanity check to make sure we
don't try to destruct a null ContentCache.

rdar://10567159

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146707 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
62d829abaf61d70483a5a584059440a549a306bf 15-Dec-2011 Eli Friedman <eli.friedman@gmail.com> gcov-style profiling support for OpenBSD. Patch by Jonathan Gray.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146631 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
9631939f82c0eaa6fb3936a0ce58a41adfbc9011 12-Dec-2011 Tony Linthicum <tlinth@codeaurora.org> Hexagon backend support

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146413 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
a4288c4aa05075cd45fd4de61d95ffe920fe6441 10-Dec-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> In ContentCache::replaceBuffer, add sanity check to make sure that we do not free a buffer
and then continue using it. rdar://10359140.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146308 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
d575254dcd061ad9e6661598f4443d85a7bd1d8b 10-Dec-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Add a sanity check in SourceManager::getColumnNumber, make sure
we don't try to access beyond the buffer.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146305 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
a2398d7da920b896001f385587e7f7d3366e5b17 09-Dec-2011 Chandler Carruth <chandlerc@gmail.com> Separate the serialization library's diagnostics from the frontend's
diagnostics. Conflating them was highly confusing and makes it harder to
establish a firm layering separation between these two libraries.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146207 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
6d402dc963aa32194f3604af4463b113858291ae 09-Dec-2011 Eli Friedman <eli.friedman@gmail.com> Misc Minix-specific changes to clang:

. move compiler-rt to a separate directory so the -L argument only includes compiler-rt (thanks joerg)
. build all clang subdirs
. switches the Minix platform to ELF
. normalizes toolchain invocation

Patch by Ben Gras.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146206 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
489ad43b77c10a98df80f1395de81e3f52697e76 08-Dec-2011 Douglas Gregor <dgregor@apple.com> Tweak the syntax of umbrella headers, so that "umbrella" is treated as
a modifier for a header declarartion, e.g.,

umbrella header "headername"

Collapse the umbrella-handling code in the parser into the
header-handling code, so we don't duplicate the header-search logic.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146159 91177308-0d34-0410-b5e6-96231b3b80d8
odule.cpp
10694cee2588442bee1e717f5042c58ffee25279 08-Dec-2011 Douglas Gregor <dgregor@apple.com> Within the module representation, generalize the notion of an umbrella
header to also support umbrella directories. The umbrella directory
for an umbrella header is the directory in which the umbrella header
resides.

No functionality change yet, but it's coming.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146158 91177308-0d34-0410-b5e6-96231b3b80d8
odule.cpp
1e12368db12005ddd92fd9188c86383fe30ef443 05-Dec-2011 Douglas Gregor <dgregor@apple.com> Parse inferred submodules in module maps, track their contents in
Module, and (de-)serialize this information. Semantics of inferred
submodules to follow.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145864 91177308-0d34-0410-b5e6-96231b3b80d8
odule.cpp
f4ac17e51f9841e05e5cc17d65f27f0d1cc62fcb 05-Dec-2011 Douglas Gregor <dgregor@apple.com> Fix printing of wildcard exports.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145812 91177308-0d34-0410-b5e6-96231b3b80d8
odule.cpp
0adaa880993ad23186c87c7f98e7a3fd2697742c 05-Dec-2011 Douglas Gregor <dgregor@apple.com> Implement support for wildcard exports in modules, allowing a module
to re-export anything that it imports. This opt-in feature makes a
module behave more like a header, because it can be used to re-export
the transitive closure of a (sub)module's dependencies.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145811 91177308-0d34-0410-b5e6-96231b3b80d8
odule.cpp
af13bfc3b40aa4a46f4e71d200ecfb10f45297fc 02-Dec-2011 Douglas Gregor <dgregor@apple.com> Implement (de-)serialization of the set of exported modules in a
module map.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145695 91177308-0d34-0410-b5e6-96231b3b80d8
odule.cpp
c5f9a011a5c13361a3a56ed7fa3507b4b585063e 02-Dec-2011 Eric Christopher <echristo@apple.com> Add support for AVX registers to clang inline asm. Add a small testcase
and update the Sema testcase with a register that we won't hit for a while
I hope.

Fixes rdar://10510405

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145671 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
ee1ad99f1ced9ffee436466ef674d4541c37864e 02-Dec-2011 Eli Friedman <eli.friedman@gmail.com> When we're passing a vector with an illegal type through memory on x86-64, use byval so we're sure the backend does the right thing. Fixes va_arg with illegal vectors and an obscure ABI mismatch with __m64 vectors.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145652 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
61ea4fe2c230914061bfbf7f4b4530020e425250 01-Dec-2011 Benjamin Kramer <benny.kra@googlemail.com> Add support for AMD's bulldozer.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145606 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1a4761edca58c6b559de825b9abfb66f7f1ba94a 01-Dec-2011 Douglas Gregor <dgregor@apple.com> Promote ModuleMap::Module to a namespace-scope class in the Basic
library, since modules cut across all of the libraries. Rename
serialization::Module to serialization::ModuleFile to side-step the
annoying naming conflict. Prune a bunch of ModuleMap.h includes that
are no longer needed (most files only needed the Module type).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145538 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
odule.cpp
f3dee206ffa571b4541b8e777ee31dc8476d66da 28-Nov-2011 Daniel Dunbar <daniel@zuster.org> Fix some possible gcc-4.2 may be used uninitialized warnings.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145293 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
53ac3d88f9089affe6c5a93dc31d45a4a6f77447 27-Nov-2011 Rafael Espindola <rafael.espindola@gmail.com> Make our handling of MMX x SSE closer to what gcc does:

* Enabling sse enables mmx.
* Disabling (-mno-mmx) mmx, doesn't disable sse (we got this right already).
* The order in not important. -msse -mno-mmx is the same as -mno-mmx -msse.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145194 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
2a710c84db1ebf0c16cba0ff121ca8e15f045a07 25-Nov-2011 Logan Chien <loganchien@google.com> Merge with clang upstream r145117 (Nov 25th 2011)

Change-Id: Id4fde985342e3c81f13887e8728bd94b82523642
a6d81f9a2d236ae21491455f649ea765123f6fc7 23-Nov-2011 James Molloy <james.molloy@arm.com> AAPCS compliance - 32-bit wchar_t should be unsigned for both aapcs and aapcs-linux.

Original behaviour of defining wchar_t as signed int has been kept for apcs-gnu as I don't have any spec for this to validate against.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145102 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
678a3ead409516d8e24831297b9a3bb98f6217c3 17-Nov-2011 NAKAMURA Takumi <geek4civic@gmail.com> Revert r132539 for now, "My testing shows that function stat has no problem with trailing separators. (tested on Windows and Darwin)."

It caused PR10331. MSVCRT stat() cannot strip trailing '/'. (can '\')

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144884 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
a081da5e44600d02983d6562bed1b4fd61e410fd 16-Nov-2011 Douglas Gregor <dgregor@apple.com> Implement (de-)serialization of the buffer contents for an overridden
file in the source manager. This allows us to properly create and use
modules described by module map files without umbrella headers (or
with incompletely umbrella headers). More generally, we can actually
build a PCH file that makes use of file -> buffer remappings, which
could be useful in libclang in the future.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144830 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
b86b8dc7ef89405205f94635c1073cdb1a7093eb 15-Nov-2011 Douglas Gregor <dgregor@apple.com> Add a -cc1-level option -fmodule-name=<name>, which will be used when
building modules.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144680 91177308-0d34-0410-b5e6-96231b3b80d8
angOptions.cpp
dce6327160a6e333137b34cce77e2dfc2cd5aab6 15-Nov-2011 Benjamin Kramer <benny.kra@googlemail.com> Warning option typo correction: When two options have the same edit_distance don't display either.

Also add a maximum edit distance threshold, so we don't correct "-Wx" to "-W#pragma-messages".

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144644 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
71d9a71d19099a6673750b47b32e9786803fa81d 15-Nov-2011 Logan Chien <loganchien@google.com> Merge with clang upstream r144605 (Nov 15th 2011)

Conflicts:
include/clang-c/Index.h
include/clang/AST/APValue.h
include/clang/AST/DeclBase.h
include/clang/AST/DeclObjC.h
include/clang/Basic/DiagnosticSemaKinds.td
include/clang/Serialization/ASTWriter.h
lib/AST/APValue.cpp
lib/AST/ASTImporter.cpp
lib/AST/DeclObjC.cpp
lib/AST/ExprConstant.cpp
lib/Driver/ToolChains.cpp
lib/Frontend/SerializedDiagnosticPrinter.cpp
lib/Frontend/Warnings.cpp
lib/Lex/HeaderSearch.cpp
lib/Lex/LiteralSupport.cpp
lib/Sema/SemaExpr.cpp
lib/Sema/SemaInit.cpp
lib/Sema/SemaPseudoObject.cpp
test/Analysis/misc-ps.c
test/Analysis/retain-release-path-notes.m
test/CodeGen/string-literal-unicode-conversion.c
test/CodeGenCXX/blocks.cpp
test/Driver/crash-cleanup.c
test/Misc/serialized-diags.c
test/Misc/warning-flags.c
tools/c-index-test/c-index-test.c
tools/libclang/CXLoadedDiagnostic.cpp
tools/libclang/IndexDecl.cpp
tools/libclang/IndexTypeSourceInfo.cpp
tools/libclang/Indexing.cpp
tools/libclang/IndexingContext.cpp
tools/libclang/IndexingContext.h
tools/libclang/libclang.exports

Change-Id: I6621e7d5d9a9d1e4cdec7b7b62ffa6dffaff375d
a70cb9db9dd79ca9fc1febbb2f331004297664e0 15-Nov-2011 Benjamin Kramer <benny.kra@googlemail.com> Print a typo correction hint for unknown warning flags.

$ clang -Wololo t.c
warning: unknown warning option '-Wololo'; did you mean '-Wall'? [-Wunknown-warning-option]

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144591 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
b7bcfe877b55fa64b4d6175e9363b88e47dbb05b 09-Nov-2011 Douglas Gregor <dgregor@apple.com> Define some built-ins macros on mips32 platform, from Simon Atanasyan!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144189 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f789d0ab6fd47baa32111cda58334233fbc8e2d0 09-Nov-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [PCH] Fix reading from PCH of diagnostic pragmas.

In certain cases ASTReader would call the normal DiagnosticsEngine API to initialize
the state of diagnostic pragmas but DiagnosticsEngine would try to compare source locations
leading to crash because the main FileID was not yet initialized.

Yet another case of the ASTReader trying to use the normal APIs and inadvertently breaking
invariants. Fix this by having the ASTReader set up the internal state directly.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144153 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
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
ileManager.cpp
a044ad9d8c1bfdc99204af9eb85c96605f7c1c6e 05-Nov-2011 Akira Hatanaka <ahatanaka@mips.com> Move definitions of SizeType and PtrDiffType to Mips32TargetInfoBase.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143775 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
a95cba91ab8df9ebc1507e649e808968a9a16821 02-Nov-2011 Douglas Gregor <dgregor@apple.com> Fix various minor issues find via unreachable code warnings, from
Ahmed Charles!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143569 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
e8172b56b2c5091fbbdf49324a2a49735bb7733c 01-Nov-2011 Eli Friedman <eli.friedman@gmail.com> Move ConvertUTF8toUTF32 out of #if 0, in preparation for a patch which needs it.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143415 91177308-0d34-0410-b5e6-96231b3b80d8
onvertUTF.c
321b7acdc381a46aa6f5992525a6b78f1963aeb2 31-Oct-2011 Anders Carlsson <andersca@mac.com> In x86_64, when calling an Objective-C method that returns a _Complex long double, make sure to use the objc_msgSend_fp2ret function which ensures that the return value will be {0, 0} if the receiver is nil.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143350 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
9979cfeb168461b4b62c506934e91a885acfc490 30-Oct-2011 Roman Divacky <rdivacky@freebsd.org> Add support for sse4a and enable it for amdfam10 cpu.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143312 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f051cde860d96d5c8db18e3e6601956fca8dc42d 30-Oct-2011 Roman Divacky <rdivacky@freebsd.org> Add support for amdfam10 cpu.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143305 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
37a5e89434d0e98e9949cf97a803ababd2f3502f 27-Oct-2011 Douglas Gregor <dgregor@apple.com> Make the loading of information attached to an IdentifierInfo from an
AST file more lazy, so that we don't eagerly load that information for
all known identifiers each time a new AST file is loaded. The eager
reloading made some sense in the context of precompiled headers, since
very few identifiers were defined before PCH load time. With modules,
however, a huge amount of code can get parsed before we see an
@import, so laziness becomes important here.

The approach taken to make this information lazy is fairly simple:
when we load a new AST file, we mark all of the existing identifiers
as being out-of-date. Whenever we want to access information that may
come from an AST (e.g., whether the identifier has a macro definition,
or what top-level declarations have that name), we check the
out-of-date bit and, if it's set, ask the AST reader to update the
IdentifierInfo from the AST files. The update is a merge, and we now
take care to merge declarations before/after imports with declarations
from multiple imports.

The results of this optimization are fairly dramatic. On a small
application that brings in 14 non-trivial modules, this takes modules
from being > 3x slower than a "perfect" PCH file down to 30% slower
for a full rebuild. A partial rebuild (where the PCH file or modules
can be re-used) is down to 7% slower. Making the PCH file just a
little imperfect (e.g., adding two smallish modules used by a bunch of
.m files that aren't in the PCH file) tips the scales in favor of the
modules approach, with 24% faster partial rebuilds.

This is just a first step; the lazy scheme could possibly be improved
by adding versioning, so we don't search into modules we already
searched. Moreover, we'll need similar lazy schemes for all of the
other lookup data structures, such as DeclContexts.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143100 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
527de441d2184669d3bfd515da26b81182ca7630 25-Oct-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Use assert(0) instead of duplicating the check, suggestion by Anna.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142886 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
8b82b6828987f2a01b3d702e0f31e85ec4812724 25-Oct-2011 Dan Gohman <gohman@apple.com> Remove the Blackfin backend.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142881 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
4dc03961bcc6bf521cefbdacc934638ae88ebd37 25-Oct-2011 Dan Gohman <gohman@apple.com> Remove the SystemZ backend.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142879 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1250759737c993b21f4bde60d31e331dc81972a1 22-Oct-2011 Akira Hatanaka <ahatanaka@mips.com> Make changes necessary for N32/64 ABI conformance.

- Size of long double is 16 bytes for both N32 and N64.
- Size of pointers and long is 8 bytes for N64.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142705 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
6406f91d7baa67ace4a5e0b1bc2eeff30143bef1 20-Oct-2011 Ted Kremenek <kremenek@apple.com> Further refine the diagnostic categories for ARC diagnostics. Addresses <rdar://problem/10245086>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142571 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
c9a237168cddc136ddba6e59b1bead5d5bf1ee95 09-Nov-2011 Douglas Gregor <dgregor@apple.com> Define some built-ins macros on mips32 platform, from Simon Atanasyan!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144189 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
87429a05ff66fe6460eaa4855fd0da574e26bf7b 09-Nov-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [PCH] Fix reading from PCH of diagnostic pragmas.

In certain cases ASTReader would call the normal DiagnosticsEngine API to initialize
the state of diagnostic pragmas but DiagnosticsEngine would try to compare source locations
leading to crash because the main FileID was not yet initialized.

Yet another case of the ASTReader trying to use the normal APIs and inadvertently breaking
invariants. Fix this by having the ASTReader set up the internal state directly.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144153 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
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
ileManager.cpp
148735ecc78fc58bea17d5cdd3225d484f350865 05-Nov-2011 Akira Hatanaka <ahatanaka@mips.com> Move definitions of SizeType and PtrDiffType to Mips32TargetInfoBase.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143775 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
21a25167b8279df3d8f889d041a4fd98733d3c27 02-Nov-2011 Douglas Gregor <dgregor@apple.com> Fix various minor issues find via unreachable code warnings, from
Ahmed Charles!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143569 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
436ecd959954db0e11c8daf64b3d6b6b6d0eba55 01-Nov-2011 Eli Friedman <eli.friedman@gmail.com> Move ConvertUTF8toUTF32 out of #if 0, in preparation for a patch which needs it.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143415 91177308-0d34-0410-b5e6-96231b3b80d8
onvertUTF.c
eea64802558cc398571938b1f28cda1d4fa79ec3 31-Oct-2011 Anders Carlsson <andersca@mac.com> In x86_64, when calling an Objective-C method that returns a _Complex long double, make sure to use the objc_msgSend_fp2ret function which ensures that the return value will be {0, 0} if the receiver is nil.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143350 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
80b32b8c6546a12cf0d4af9c2cd785ec1f123188 30-Oct-2011 Roman Divacky <rdivacky@freebsd.org> Add support for sse4a and enable it for amdfam10 cpu.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143312 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
01c770d6c91551ad4f03d9773e243231e52d8c49 30-Oct-2011 Roman Divacky <rdivacky@freebsd.org> Add support for amdfam10 cpu.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143305 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
eee242ff426bf79149f221798966e58688383c1e 27-Oct-2011 Douglas Gregor <dgregor@apple.com> Make the loading of information attached to an IdentifierInfo from an
AST file more lazy, so that we don't eagerly load that information for
all known identifiers each time a new AST file is loaded. The eager
reloading made some sense in the context of precompiled headers, since
very few identifiers were defined before PCH load time. With modules,
however, a huge amount of code can get parsed before we see an
@import, so laziness becomes important here.

The approach taken to make this information lazy is fairly simple:
when we load a new AST file, we mark all of the existing identifiers
as being out-of-date. Whenever we want to access information that may
come from an AST (e.g., whether the identifier has a macro definition,
or what top-level declarations have that name), we check the
out-of-date bit and, if it's set, ask the AST reader to update the
IdentifierInfo from the AST files. The update is a merge, and we now
take care to merge declarations before/after imports with declarations
from multiple imports.

The results of this optimization are fairly dramatic. On a small
application that brings in 14 non-trivial modules, this takes modules
from being > 3x slower than a "perfect" PCH file down to 30% slower
for a full rebuild. A partial rebuild (where the PCH file or modules
can be re-used) is down to 7% slower. Making the PCH file just a
little imperfect (e.g., adding two smallish modules used by a bunch of
.m files that aren't in the PCH file) tips the scales in favor of the
modules approach, with 24% faster partial rebuilds.

This is just a first step; the lazy scheme could possibly be improved
by adding versioning, so we don't search into modules we already
searched. Moreover, we'll need similar lazy schemes for all of the
other lookup data structures, such as DeclContexts.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143100 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
82ccbe759b716f1747e03f54a4cd6eb164bb3427 25-Oct-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Use assert(0) instead of duplicating the check, suggestion by Anna.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142886 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
78cf13db148c3a7f86a3f2148591a7a2c1b8e711 25-Oct-2011 Dan Gohman <gohman@apple.com> Remove the Blackfin backend.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142881 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
0986eb5c59c43809df95bac10138edd44c1ebb69 25-Oct-2011 Dan Gohman <gohman@apple.com> Remove the SystemZ backend.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142879 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
fe6bd6dc51777802a0118521b9039981a0e6a806 21-Oct-2011 Logan Chien <loganchien@google.com> Apply changes to migrate to upstream Oct 20th 2011 (r142531)

Change-Id: I32cdb5da2c07c84e01f42b4e87161196f468806a
ndroid.mk
00a92abaf907802bfa4d6f38bdd242c6bfc34c09 21-Oct-2011 Logan Chien <loganchien@google.com> Merge with clang upstream Oct 20th 2011 (r142531)

Change-Id: I42181113f38ce445f2a48694d6f654438562b71e
c7d0ab174c3f5150ba5667a96e621da9e057a3c3 22-Oct-2011 Akira Hatanaka <ahatanaka@mips.com> Make changes necessary for N32/64 ABI conformance.

- Size of long double is 16 bytes for both N32 and N64.
- Size of pointers and long is 8 bytes for N64.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142705 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
64f853101a23276621e160cc9b145f0bd699956d 21-Oct-2011 Stephen Hines <srhines@google.com> Properly abstract 64-bit longs for Renderscript.

Change-Id: I4d0c3084f6080f23daadc0534145ec12aaa1a918
argets.cpp
afdc21ad774eff6ed6c464e3f2dff9e26ed3d0b0 20-Oct-2011 Ted Kremenek <kremenek@apple.com> Further refine the diagnostic categories for ARC diagnostics. Addresses <rdar://problem/10245086>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142571 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
474202f657239f4169f8ff8db844e19558daa637 18-Oct-2011 Benjamin Kramer <benny.kra@googlemail.com> Use llvm::Triple's methods to parse FreeBSD version numbers.

Who could've thought that FreeBSD would ever reach version 10!
Patch from Dimitry Andric.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142349 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
aa93a875605536d72a10359a0098396192b7d4ec 17-Oct-2011 Douglas Gregor <dgregor@apple.com> For modules, all macros that aren't include guards are implicitly
public. Add a __private_macro__ directive to hide a macro, similar to
the __module_private__ declaration specifier.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142188 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
86d18c56383404f2098c6dbc716852aad60ba060 15-Oct-2011 Benjamin Kramer <benny.kra@googlemail.com> Place static initializers on linux into the ".text.startup" section, so the linker can group them together for performance.

This only has an effect with fairly new binutils (2.21.51 or later). Other ELF targets probably want this as well, but on BSDs binutils is usually old so it doesn't matter.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142076 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
aa4a99b4a62615db243f7a5c433169f2fc704420 15-Oct-2011 Anton Korobeynikov <asl@math.spbu.ru> Provide half floating point support as a storage only type.
Lack of half FP was a regression compared to llvm-gcc.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142016 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
2be460723940f8184ec36529b6f6ddf59c04e411 14-Oct-2011 Eli Friedman <eli.friedman@gmail.com> Misc fixes for atomics. Biggest fix is doing alignment correctly for _Atomic types.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142002 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
18c407fcb25ea88a52ad48fcc4397c3616dd185d 12-Oct-2011 Bob Wilson <bob.wilson@apple.com> Change __extension__ to disable only diagnostics controlled by -pedantic.

This changes clang to match GCC's behavior for __extension__, which temporarily
disables the -pedantic flag. Warnings that are enabled without -pedantic
are not affected. Besides the general goodness of matching GCC's precedent,
my motivation for this is that macros in the arm_neon.h header need to use
__extension__ to avoid pedantic complaints about their use of statement
expressions, yet we still want to warn about incompatible pointer arguments
for those macros.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141804 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
7e1812fa60d1387a459992b2a46df1a6b91d993a 12-Oct-2011 Anton Korobeynikov <asl@math.spbu.ru> Add target info for Linux on PPC & Sparc.
Patch by Hal Finkel!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141772 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
796dbfb6c43336f58c026137c438e53eadc381f7 12-Oct-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Introduce SourceManager::getFileLoc which returns a file location
taking into account macro arguments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141771 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
98d86b98b3fd0bd9c546123b16fd9995509aaae1 11-Oct-2011 Richard Smith <richard-llvm@metafoo.co.uk> Add a -Wc++0x-compat warning for C++11 keywords used as identifiers when in
C++98 mode. Only the first occurrence of each keyword will produce a warning.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141700 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
dd4a889f6a5b05f0061d63af8136ebd70d132c65 11-Oct-2011 David Meyer <pdox@google.com> Allow regparm attribute for PNaCl target

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141638 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
567c60024aa905d9039bbeb905b70172b1d12b40 11-Oct-2011 Lang Hames <lhames@gmail.com> Fixed natural stack alignment for Linux x86-32. Thanks Eli.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141617 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f4f5003041ca88e0efe81ef8b5d7f0c499da4bf8 11-Oct-2011 Lang Hames <lhames@gmail.com> Update target data strings for ARM and X86 to include the natural stack
alignment parameter "S<size>" that was introduced in r141599.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141601 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
209f5bb70b5719e06a64fa6fa1435e6e1f76502a 07-Oct-2011 Eli Friedman <eli.friedman@gmail.com> Add address spaces for TCE target. Patch by Pekka Jääskeläinen.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141390 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
53201a86f775c064b62ec25742106c7b43ba8749 04-Oct-2011 Daniel Dunbar <daniel@zuster.org> Basic/Diagnostics: Apparently, #pragma ... diagnostic is intended to override
the command line options (at least according to GCC's documentation). GCC 4.2
didn't appear to actually do this, but it seems like that has been fixed in
later release, so we will follow the docs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141119 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
c3b4575b77164fdf008cd4acc330884d56ca500f 04-Oct-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Make sure SourceManager::getFileIDLoaded doesn't hang in release build because of invalid passed parameter.
rdar://10210140

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141048 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
25bedca83404020665b7246d537bda85492a2b3e 03-Oct-2011 Justin Holewinski <justin.holewinski@gmail.com> PTX: Add some basic support for OpenCL address spaces

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141008 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
aeacae523a1c6e5bb99d12754415bbbc3ccb86c9 29-Sep-2011 Daniel Dunbar <daniel@zuster.org> Basic/Diagnostic: Kill off a few unnecessary functions now that refactoring is done, and add a note that the new setDiagnosticGroup{...} methods only operate on the current diagnostic state.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140771 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
iagnosticIDs.cpp
be1aa410274b28fc143c47c814f07c989f4534d6 29-Sep-2011 Daniel Dunbar <daniel@zuster.org> Basic/Diagnostics: Rewrite DiagnosticIDs::getDiagnosticLevel completely to be straighter line code, use the new DiagnosticMappingInfo flags, and eliminate the odd MAP_WARNING_NO_WERROR and friend mappings.
- This fixes a host of obscure bugs with regards to how warning mapping options composed with one another, and I believe makes the code substantially easier to read and reason about.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140770 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
iagnosticIDs.cpp
a5e41333b06fdf036d58495490eb14d6a0a3fcf7 29-Sep-2011 Daniel Dunbar <daniel@zuster.org> Basic/Diagnostics: Add three explicit bits to DiagnosticMappingInfo to track "no-warning-as-error", "no-error-as-fatal", and "show-in-system-header", and update DiagnosticsEngine::setDiagnosticGroup{WarningAsError,ErrorAsFatal} and GetDefaultDiagMappingInfo to set them appropriately.
- No actual functionality change for now, we still also use the diag::Mapping::{MAP_WARNING_NO_ERROR,MAP_ERROR_NO_FATAL,MAP_WARNING_SHOW_IN_SYSTEM_HEADER} for a little while longer.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140768 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
iagnosticIDs.cpp
3f8394669673451061f57ced81f0a2cae087f119 29-Sep-2011 Daniel Dunbar <daniel@zuster.org> Basic/Diagnostics: Add a DiagnosticIDs::getDiagnosticsInGroup method, and use
that in DiagnosticEngine instead of the convoluted calling into DiagnosticIDs
which then calls back into the DiagnosticsEngine.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140766 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
iagnosticIDs.cpp
ba494c64365d78b1cdb6baea4d1e79263389fda9 29-Sep-2011 Daniel Dunbar <daniel@zuster.org> Basic/Diagnostic: Add a DiagSate::getOrAddMappingInfo method.
- Also, spell const_iterator as const_iterator.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140765 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
09ea68d17bc0fc0b16d287ad4d3f61fe7def4f17 29-Sep-2011 Daniel Dunbar <daniel@zuster.org> Basic/Diagnostics: Move setDiagnosticMapping() to using DiagnosticMappingInfo
and eliminate setDiagnosticMappingInternal.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140763 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
b1c99c679adb53be8f478d08be83af6c9c22ae4b 29-Sep-2011 Daniel Dunbar <daniel@zuster.org> Basic/Diagnostics: Add a DiagnosticMappingInfo helper class, and switch to
storing mappings with that instead of straying some magic constants about the
source.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140760 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
c3c4a89747e12ebc2eabe57265c8b69ab720ecbf 29-Sep-2011 Daniel Dunbar <daniel@zuster.org> Basic/Diagnostics: Eliminate getDiagnosticMappingInfo method, which wasn't worth methodizing.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140759 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
1656aaec223949245fdbebf306b719cba0b687ca 29-Sep-2011 Daniel Dunbar <daniel@zuster.org> Basic/Diagnostic: Eliminate the extra "mapping" out-parameter now that I killed the sole client.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140756 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
76101cfe52d1b56974bf0e316247b3201f87c463 29-Sep-2011 Daniel Dunbar <daniel@zuster.org> Basic/Diagnostics: Add an isDefaultMappingAsError method, and switch TextDiagnosticPrinter to use that instead of extracting the current mapping via getDiagnosticLevel, which fixes one class of corner cases w.r.t. printing the "-Werror" diagnostic option marker.
- The TextDiagnosticPrinter code is still fragile as it is just "reverse engineering" what the diagnostic engine is doing. Not my current priority to fix though.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140752 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
4aa8f2bce0f498152d624f748712a991adc23fdd 29-Sep-2011 Daniel Dunbar <daniel@zuster.org> Basic/Diagnostic: Factor out
DiagnosticsEngine::setDiagnosticGroup{ErrorAsFatal,WarningAsError} methods which
more accurately model the correct API -- no internal change to the diagnostics
engine yet though.
- Also, stop honoring -Werror=everything (etc.) as a valid (but oddly behaved) option.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140747 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
4213df3b5da21ce25a4541ca5c447eeb28b515a3 29-Sep-2011 Daniel Dunbar <daniel@zuster.org> Basic/Diagnostics: Split out the default warning "no-Werror" and
"show-in-system-header" bits, which is part of teasing them apart from the
diagnostic mapping kind.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140742 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
83450aa7e778537a47eb678c8300f41b7f806219 28-Sep-2011 Chandler Carruth <chandlerc@gmail.com> Fix a typo spotted by Jonathan Sauer.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140708 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
5b7803db01a5cf5fbbeef8dc5d07e8eff303f131 28-Sep-2011 Chandler Carruth <chandlerc@gmail.com> Attempt to silence the GCC -Wreturn-type warning...

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140693 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
49defe63013f6a97aed2f35e50c6b6c69bc0dcf8 28-Sep-2011 Chandler Carruth <chandlerc@gmail.com> Generate tests for all of the x86 SIMD instruction feature set
predefines based on the output of GCC as well as the CPU predefines.

Invert tests for __AVX__, Clang's AVX feature is hard coded off still.

Switch Atom from 'SSE3' to 'SSSE3'. This matches GCC's behavior, Intel's
documentation, and ICC's documentation (such as I could dig up).

Switch Athlon and Geode to enable 3dnowa rather than just 3dnow and
nothing (resp.).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140692 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
53bf4f94185dbd1144724cdd5101d2163890b049 28-Sep-2011 Chandler Carruth <chandlerc@gmail.com> Fix a think-o on my part that got enshrined in a FIXME by setting up the
__tune_...__ define as well.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140690 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
88c75b0af17d103a116239a04dea7f27081370ab 28-Sep-2011 Chandler Carruth <chandlerc@gmail.com> Move some of the defines down to more natural locations, consolidating
the target identifying macros at the top, including subtarget macros.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140689 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
26a3914eeda65e0dd6b55899f6d76ef99fc021c6 28-Sep-2011 Chandler Carruth <chandlerc@gmail.com> Teach Clang to reject 32-bit only CPUs when compiling in 64-bit mode.
Add 64-bit preprocessor macro tests.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140688 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f17ba331e844ad0b99a35b9e4947b42967e44238 28-Sep-2011 Chandler Carruth <chandlerc@gmail.com> Simplify the control flow for predefined macro selection by using
fallthrough now that we're working with a switch. Also remove a dubious
"feature" regarding k6 processors and 3dnow and leave a fixme... Not
that anyone is likely to care about correct tuning for k6 processors
with and w/o 3dnow...

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140687 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
d9d3ddff44ca1502661f727dd91f64eb5823d647 28-Sep-2011 Chandler Carruth <chandlerc@gmail.com> Switch the X86TargetInfo object from a string representation of the
selected CPU model to the enumeration. This parses the string
representation once using a StringSwitch on SetCPU. It returns an error
for strings which are not recognized (yay!). Finally it replaces
ridiculous if-chains with switches that cover all enumerators.

The last change required adding several missing entries to the features
function. These were obvious on inspection. Yay for a pattern that gives
warnings when we miss one.

No new test cases yet, as I want to get the 64-bit errors working first.
I'll then start fleshing out the testing more. Currently I'm primarily
testing on Linux, but I'm hoping check whether there are interesting
differences on darwin before long...

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140685 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
499d972f08af0f1bffe30f253b24e66dfb0d4e02 28-Sep-2011 Chandler Carruth <chandlerc@gmail.com> Introduce an enumeration for the x86 CPUs recognized by Clang. I've
tried to give these nice doxyments, but if I've gotten any of my history
wrong, please chime in.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140684 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
c3a2e654f1e1c5cf956d0666d9c4c2f60a66f112 28-Sep-2011 Chandler Carruth <chandlerc@gmail.com> Clean up a bit of the uses of CPU in the TargetInfo classes. This makes
it an error if a CPU is provided for a target that doesn't implement
logic handling CPU settings, to match the ABI settings. It also removes
the CPU parameter from the getDefaultFeatures method. This parameter was
always filled in with the same value as setCPU was called with, and at
this point every single target implementation that referenced the CPU
within this function has needed to store the CPU via setCPU anyways in
order to implement other interface points.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140683 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f6cf1c28fbdeafee3cee95423a6a76be7278867e 28-Sep-2011 Chandler Carruth <chandlerc@gmail.com> Begin fixing Clang's predefined macros for various architectures. This
is *very* much a WIP that I'll be refining over the next several
commits, but I need to get this checkpoint in place for sanity.

This also adds a much more comprehensive test for architecture macros,
which is roughly generated by inspecting the behavior of a trunk build
of GCC. It still requires some massaging, but eventually I'll even check
in the script that generates these so that others can use it to append
more tests for more architectures, etc.

Next up is a bunch of simplification of the Targets.cpp code, followed
by a lot more test cases once we can reject invalid architectures.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140673 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
b201e16e0c331b0bdeae7b30f9f79aae32beb1b2 27-Sep-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Break SourceManager::translateFileLineCol into translateFile, no functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140610 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
fb3612ef197cb8532c05f33889ec1aed7c26e5cb 26-Sep-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Associate the macro arguments location map with a FileID instead
of a ContentCache, since multiple FileIDs can have the same ContentCache
but the expanded macro arguments locations will be different.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140521 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
40847cfb58acc3cac7d68727df9455ac45f2e118 26-Sep-2011 David Blaikie <dblaikie@gmail.com> Rename DiagnosticInfo to Diagnostic as per issue 5397


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140493 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
iagnosticIDs.cpp
78ad0b98848c17a0a11847fa1d456e2dfec8aa2f 26-Sep-2011 David Blaikie <dblaikie@gmail.com> Rename DiagnosticClient to DiagnosticConsumer as per issue 5397


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140479 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
d6471f7c1921c7802804ce3ff6fe9768310f72b9 26-Sep-2011 David Blaikie <dblaikie@gmail.com> Rename Diagnostic to DiagnosticsEngine as per issue 5397


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140478 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
iagnosticIDs.cpp
ourceManager.cpp
argets.cpp
9fe8c74a93ac8e92512615c5f83e7a328b3b0544 23-Sep-2011 David Blaikie <dblaikie@gmail.com> Fix missing includes for llvm_unreachable


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140368 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
argetInfo.cpp
argets.cpp
b219cfc4d75f0a03630b7c4509ef791b7e97b2c8 23-Sep-2011 David Blaikie <dblaikie@gmail.com> Switch assert(0/false) llvm_unreachable.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140367 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
argetInfo.cpp
argets.cpp
d8e0fe617af3c9fb60a680ecb2ff765b71ef3c1d 22-Sep-2011 Justin Holewinski <justin.holewinski@gmail.com> PTX: Clean up target options code

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140320 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
5e5e95dec56d8f2392068c43c84eaaad674c2702 21-Sep-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> In SourceManager::translateLineCol, handle the case where we are pointing
directly at the end of the source file.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140192 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
bf5851a9f2ba2323b96626bbd78de45c0db1da95 20-Sep-2011 Akira Hatanaka <ahatanak@gmail.com> Define Mips64 TargetInfo classes.





git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140174 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
b6a37b38c976b05a67f9cacf6fe1d1aa26193e03 20-Sep-2011 Akira Hatanaka <ahatanak@gmail.com> Clean up TargetInfo class hierarchy. Define a base class from which TargetInfos
of Mips32 big and little endian derive.





git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140170 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
68018db76756c6959db15160055fd8da6bec5bec 20-Sep-2011 Ivan Krasin <krasin@chromium.org> Clarify PNaCl target characteristics: set LongDoubleWidth, PtrDiffType, IntPtrType,
change __builtin_va_list to from a structure to int[4] (same alignment
and size, but with a simpler representation). Patch by David Meyer!



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140144 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
507097ec40105ed927cb5a744fad98f5875aacac 19-Sep-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> [libclang] When getting a source location from a file:line:col triplet
check whether the requested location points inside the precompiled preamble,
in which case the returned source location will be a "loaded" one.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140060 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
efa2ff8603dae51f5f5ed7509a503f477498ad22 19-Sep-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Break SourceManager::translateFileLineCol into translateLineCol that returns the
source location of line:col of a specific FileID.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140059 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
a64ccefdf0ea4e03ec88805d71b0af74950c7472 19-Sep-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Rename SourceLocation::getFileLocWithOffset -> getLocWithOffset.

It already works (and is useful with) macro locs as well.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140057 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
50402470f07f720c509c8797f40a106a0d4af6a7 19-Sep-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> For SourceManager::isBeforeInTranslationUnit, a location pointing
inside a macro argument should be regarded as coming before
the location of the expanded tokens.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140053 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
62ec1f2fd7368542bb926c04797fb07023547694 17-Sep-2011 Francois Pichet <pichet2000@gmail.com> Rename LangOptions::Microsoft to LangOptions::MicrosoftExt to make it clear that this flag must be used only for Microsoft extensions and not emulation; to avoid confusion with the new LangOptions::MicrosoftMode flag.

Many of the code now under LangOptions::MicrosoftExt will eventually be moved under the LangOptions::MicrosoftMode flag.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139987 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
argets.cpp
0f50b08940ea0a9a44f2715f49ccf6bc64b95491 15-Sep-2011 Douglas Gregor <dgregor@apple.com> Teach LangOptions::resetNonModularOptions to actually do what it says it does

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139791 91177308-0d34-0410-b5e6-96231b3b80d8
angOptions.cpp
808ef66afbafb210baa19b567ac20f73142f5111 15-Sep-2011 Justin Holewinski <justin.holewinski@gmail.com> PTX: Define target options

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139789 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
ab9b154c93475fa55e6115774f64661737d113f9 14-Sep-2011 Akira Hatanaka <ahatanak@gmail.com> Add comment.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139700 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
6e975c4517958bcc11c834336d340797356058db 14-Sep-2011 Douglas Gregor <dgregor@apple.com> For modules, use a hash of the compiler version, language options, and
target triple to separate modules built under different
conditions. The hash is used to create a subdirectory in the module
cache path where other invocations of the compiler (with the same
version, language options, etc.) can find the precompiled modules.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139662 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
36f37b6f578249c20d7a3b3aa77f0a00069ca9ac 14-Sep-2011 Akira Hatanaka <ahatanak@gmail.com> O64 will not be supported.




git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139655 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1d19edc492e8801716a82c61570b6595da00c2c2 14-Sep-2011 Akira Hatanaka <ahatanak@gmail.com> mips*-*-psp is no longer supported as a target.




git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139654 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1c7e0472f5683a8ade62285f366637050cf113e5 13-Sep-2011 Douglas Gregor <dgregor@apple.com> When building a module on-demand, clear out the "non-modular" language
and preprocessor options (such as macro definitions) first.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139638 91177308-0d34-0410-b5e6-96231b3b80d8
angOptions.cpp
e289d81369914678db386f6aa86faf8f178e245d 13-Sep-2011 Douglas Gregor <dgregor@apple.com> Switch LangOptions over to a .def file that describes header of the
language options. Use that .def file to declare the LangOptions class
and initialize all of its members, eliminating a source of annoying
initialization bugs.

AST serialization changes are next up.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139605 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
angOptions.cpp
argets.cpp
21cae2059a06f7d89eee169409c9266def1b1aca 13-Sep-2011 Douglas Gregor <dgregor@apple.com> When an import statement fails to find a module in the module cache,
but there is a corresponding umbrella header in a framework, build the
module on-the-fly so it can be immediately loaded at the import
statement. This is very much proof-of-concept code, with details to be
fleshed out over time.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139558 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
62f940bff18f1e0d48466b08d2b61d137ebb65bd 08-Sep-2011 Abramo Bagnara <abramo.bagnara@gmail.com> Added missing initialization.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139291 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
998b3d3e8528ebd9d2c5d78d3a82edd90a8953a4 02-Sep-2011 Douglas Gregor <dgregor@apple.com> Allow the preprocessor to be constructed without performing target-
and language-specific initialization. Use this to allow ASTUnit to
create a preprocessor object *before* loading the AST file. No actual
functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138983 91177308-0d34-0410-b5e6-96231b3b80d8
uiltins.cpp
7143aab97c6e849a5a5005b7853b8c7d5af008ed 01-Sep-2011 Douglas Gregor <dgregor@apple.com> Modules hide macro definitions by default, so that silly things like
include guards don't show up as macro definitions in every translation
unit that imports a module. Macro definitions can, however, be
exported with the intentionally-ugly #__export_macro__
directive. Implement this feature by not even bothering to serialize
non-exported macros to a module, because clients of that module need
not (should not) know that these macros even exist.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138943 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
f619cdc13267625a6c63aedc9ba4b52bdb40a3b9 30-Aug-2011 Ivan Krasin <krasin@chromium.org> Clang/PNaCl: Improve test coverage for PNaClTargetInfo (type aligns), fixes nits:
- wrong alignment for double (it was 4, but 8 is desired),
- added checks for _REENTRANT define,
- fixed the issue that defines were not tested (because the check for inside #ifdef).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138775 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
80cb6e69d9e85231588ae604e4bc2bc9a07389af 29-Aug-2011 Nico Weber <nicolasweber@gmx.de> Warn on missing [super finalize] calls.

This matches gcc's logic. Second half of PR10661.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138730 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
089ee11529c2f9318a52f026ecf3acae997c102e 26-Aug-2011 Ivan Krasin <krasin@chromium.org> PNaClTargetInfo: add __ELF__, _REENTRANT and _GNU_SOURCE defines and update the test



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138607 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
bba43efdec3b2aa483b55d4287ba1c48c55935d4 24-Aug-2011 Ivan Krasin <krasin@chromium.org> Follow up to r138470 (Add PNaCl TargetInfo). I've occasionally submitted wrong patch.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138489 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
ef05abda02375a6565edcc0bdf20bdd41c0a87b3 24-Aug-2011 Ivan Krasin <krasin@chromium.org> Add PNaCl TargetInfo.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138470 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
d7cb46c316808169679a8d72c69f02a1e55d78a8 23-Aug-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Remove one SourceManager::isInFileID overload and use isOffsetInFileID for the other.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138381 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
b6c465e17ec37390667223a18a340e8652c212ff 23-Aug-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Amend r138129 (reduction of SLocEntries) which introduced performance regression due
to increased calls to SourceManager::getFileID. (rdar://9992664)

Use a slightly different approach that is more efficient both in terms of speed
(no extra getFileID calls) and in SLocEntries reduction.

Comparing pre-r138129 and this patch we get:

For compiling SemaExpr.cpp reduction of SLocEntries by 26%.
For the boost enum library:
-SLocEntries -34% (note that this was -5% for r138129)
-Memory consumption -50%
-PCH size -31%

Reduced SLocEntries also benefit the hot function SourceManager::getFileID,
evident by the reduced "FileID scans".

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138380 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
984e42ca1ff7775ce39372c314f1cb7d6862c4c7 23-Aug-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Move a couple of SourceManager functions out-of-line; no functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138375 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
d9d2b679d0728ea7f539f38aaea38e26b8b08043 22-Aug-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Boost the efficiency of SourceManager::getMacroArgExpandedLocation.

Currently getMacroArgExpandedLocation is very inefficient and for the case
of a location pointing at the main file it will end up checking almost all of
the SLocEntries. Make it faster:

-Use a map of macro argument chunks to their expanded source location. The map
is for a single source file, it's stored in the file's ContentCache and lazily
computed, like the source lines cache.
-In SLocEntry's FileInfo add an 'unsigned NumCreatedFIDs' field that keeps track
of the number of FileIDs (files and macros) that were created during preprocessing
of that particular file SLocEntry. This is useful when computing the macro argument
map in skipping included files while scanning for macro arg FileIDs that lexed from
a specific source file. Due to padding, the new field does not increase the size
of SLocEntry.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138225 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
54232ade44d31e98ea83f43ca066128e315dcbda 20-Aug-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Refactor common functionality into SourceManager::getFileIDSize, no functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138127 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
1e473ccb0e0f6fd1954bef330f7193c1a3fb3ba1 18-Aug-2011 Ted Kremenek <kremenek@apple.com> Implement '-Weverything', which enables all warnings except those explicitly mapped to be ignored.

Currently this includes -pedantic warnings as well; we'll need to consider whether these should
be included.

This works as expected with -Werror.

Test cases were added to Sema/warn-unused-parameters.c, but they should probably be broken off into
their own test file.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137910 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
iagnosticIDs.cpp
292772c16558cf52a8a01452e259b09d586804ec 18-Aug-2011 Bruno Cardoso Lopes <bruno.cardoso@gmail.com> "-mavx" should also enable all other SSE levels.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137905 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f1d594864b4aefc1fe21535cb43e8a81038f3f15 17-Aug-2011 Douglas Gregor <dgregor@apple.com> Fix -ferror-limit= to properly emit notes following the last error
messages. Fi from David Blaikie, tests from Nikola Smiljanic!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137851 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
ac836e442cbd17f33533bd0b4879258945bc1723 17-Aug-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Introduce SourceManager::getMacroArgExpandedLocation function.

If we pass it a source location that points inside a function macro argument,
the returned location will be the macro location in which the argument was expanded.
If a macro argument is used multiple times, the expanded location will
be at the first expansion of the argument.
e.g.
MY_MACRO(foo);
^
Passing a file location pointing at 'foo', will yield a macro location
where 'foo' was expanded into.

Make SourceManager::getLocation call getMacroArgExpandedLocation as well.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137794 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
37e59a10a7a537428e5997fd5896f5b89fd34e6b 17-Aug-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Make SourceManager::isBeforeInTranslationUnit handle macro locations correctly.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137793 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
7c5109b0322058c1fb80222b71b380b2c7b10d4e 13-Aug-2011 Jeffrey Yasskin <jyasskin@google.com> Fix C++0x narrowing conversion errors in Clang.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137552 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
6948bc4bcbd92502d90b877780a3b746275efa5b 09-Aug-2011 Ted Kremenek <kremenek@apple.com> Provide diag_iterator for iterating over the built-in diagnostic IDs/names in the internal table of DiagnosticIDs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137108 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
6e43f3f0e2fa7a4b50d2497de94a40437cd26003 04-Aug-2011 Chad Rosier <mcrosier@apple.com> Additional comments and whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136892 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
61a62216a0bb33fb668ab653d9f9a704e43d2fc6 04-Aug-2011 Chad Rosier <mcrosier@apple.com> Add partial support for using anonymous bitfields (e.g., int : 0) to enforce
alignment. This fixes cases where the anonymous bitfield is followed by a
non-bitfield member. E.g.,

struct t4
{
int foo : 1;
long : 0;
char bar;
};

Part of rdar://9859156

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136858 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
b9a8adf57b30611951e72e140b61ecc7caee3564 31-Jul-2011 Benjamin Kramer <benny.kra@googlemail.com> Remove dead code flagged by GCC's -Wunused-but-set-variable.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136581 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
895d4220e590a1aefd24954e3ccabe53b9676608 29-Jul-2011 Eric Christopher <echristo@apple.com> Add support for the 'Q' arm memory constraint.

Fixes rdar://9866494


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136524 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
c0a575f9b791a25c94b1c3c832dd73ec564646bb 29-Jul-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Make DiagnosticErrorTrap keep a count of the errors that occurred so multiple
DiagnosticErrorTraps can be composed (e.g. a trap inside another trap).

Fixes http://llvm.org/PR10462 & rdar://9852007.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136447 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
iagnosticIDs.cpp
6e36c12404269eb4909e85d3be69f78d36d1d297 27-Jul-2011 Ted Kremenek <kremenek@apple.com> Change SourceManager::getDataStructureSizes() to use llvm::capacity_in_bytes().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136236 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
ca7dc2b755eb81ac95121ce1a1f1aa44a4a0fe12 27-Jul-2011 Ted Kremenek <kremenek@apple.com> clang_getCXTUResourceUsage: Report memory used by data structures in SourceManager.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136189 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
9f1210c3280104417a4ad30f0a00825ac8fa718a 26-Jul-2011 Chad Rosier <mcrosier@apple.com> After further discussion it has been determined that alignof should report
the preferred alignment. Thus, revert r135934, r135935, and r135940.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136062 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
3201f382956ed9beee9fb31229c2835c1208889c 26-Jul-2011 Chandler Carruth <chandlerc@gmail.com> Clean up as many of the comments in Basic I can find to talk in terms of
'expansion' rather than 'instantiation' for macro source locations.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136058 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
ourceLocation.cpp
ourceManager.cpp
1728762d5a8cfaf8d64385f47b311e84de1ae7a2 26-Jul-2011 Chandler Carruth <chandlerc@gmail.com> Migrate 'Instantiation' data and API bits of SLocEntry to 'Expansion'
etc. With this I think essentially all of the SourceManager APIs are
converted. Comments and random other bits of cleanup should be all thats
left.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136057 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
78df836808aee22c3157e1bc23bc4ec569b80568 26-Jul-2011 Chandler Carruth <chandlerc@gmail.com> Convert InstantiationInfo and much of the related code to ExpansionInfo
and various other 'expansion' based terms. I've tried to reformat where
appropriate and catch as many references in comments but I'm going to do
several more passes. Also I've tried to expand parameter names to be
more clear where appropriate.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136056 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
bf340e452339e374ea6eef78c1f0a2abdd16c5a3 26-Jul-2011 Chandler Carruth <chandlerc@gmail.com> Rename create(MacroArg)InstantiationLoc to create(MacroArg)ExpansionLoc.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136054 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
96d3589e523a04f4ff2058a7919226ce60696ae8 26-Jul-2011 Chandler Carruth <chandlerc@gmail.com> Rename SourceManager (and InstantiationInfo) isMacroArgInstantiation API
to isMacroArgExpansion.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136053 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
642116259e8df6286063a17361c20e95b5017a0a 25-Jul-2011 Chandler Carruth <chandlerc@gmail.com> Rename getInstantiationLineNumber to getExpansionLineNumber in both
SourceManager and FullSourceLoc.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135969 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
ourceManager.cpp
a77c031cb66f75d22672070052cc6e0205289ff8 25-Jul-2011 Chandler Carruth <chandlerc@gmail.com> Rename getInstantiationColumnNumber to getExpansionColumnNumber in both
SourceManager and FullSourceLoc.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135965 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
ourceManager.cpp
e7b2b6e87dbe5b1207f77b6ff9c210a02f95bb39 25-Jul-2011 Chandler Carruth <chandlerc@gmail.com> Rename getDecomposedInstantiationLoc to getDecomposedExpansionLoc.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135962 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
f84ef95ecec34f27fd05eb4e0392ca6bd3bd0be0 25-Jul-2011 Chandler Carruth <chandlerc@gmail.com> getInstantiationLocSlowCase -> getExpansionLocSlowCase

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135961 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
999f739404edf2078cf9f9c28b4dc45c19765842 25-Jul-2011 Chandler Carruth <chandlerc@gmail.com> Rename SourceManager::getImmediateInstantiationRange to
getImmediateExpansionRange.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135960 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
822f54a7ba3eca643104623e8048be20a3391b19 25-Jul-2011 Chad Rosier <mcrosier@apple.com> Allow target to specify about using minimum alignment vs preferred. Takes care of
FIXME: Override "preferred align" for double and long long for ARM apcs-gnu ABI.
Also part of rdar://9802874

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135940 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
edc3dccece244a584f8ebdb81da6c962c08e79be 25-Jul-2011 Chandler Carruth <chandlerc@gmail.com> Rename SourceManager::getInstantiationRange to getExpansionRange.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135915 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
402785357ab053dd53f4fdd858b9630a5e0f8bad 25-Jul-2011 Chandler Carruth <chandlerc@gmail.com> Mechanically rename SourceManager::getInstantiationLoc and
FullSourceLoc::getInstantiationLoc to ...::getExpansionLoc. This is part
of the API and documentation update from 'instantiation' as the term for
macros to 'expansion'.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135914 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
ourceLocation.cpp
2d3ba4f5a923a90c3fc290ddfba5e36c2d0a9b46 23-Jul-2011 Chris Lattner <sabre@nondot.org> Move ArrayRef to LLVM.h and eliminate now-redundant qualifiers, patch by Jon Mulder!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135855 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
5f9e272e632e951b1efe824cd16acb4d96077930 23-Jul-2011 Chris Lattner <sabre@nondot.org> remove unneeded llvm:: namespace qualifiers on some core types now that LLVM.h imports
them into the clang namespace.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135852 91177308-0d34-0410-b5e6-96231b3b80d8
uiltins.cpp
iagnostic.cpp
iagnosticIDs.cpp
ileManager.cpp
dentifierTable.cpp
ourceLocation.cpp
ourceManager.cpp
argetInfo.cpp
argets.cpp
ersion.cpp
ersionTuple.cpp
8c24d1a29442ff362292ea1690452652bb49d1c6 21-Jul-2011 Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Define the _MIPS_SIM builtin macro on MIPS platforms. Patch by Robert Millan!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135675 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
9d102547dc44d064b40473a5a5166a8bb0dec99a 20-Jul-2011 Logan Chien <loganchien@google.com> Merge with clang upstream r135574 (Jul 20th 2011)

Change-Id: Ib6cc2ba08a63e4cf8febc05fb6e3f2ca58f1d71d
d9259f373f2f0460a1ab12792b282d19bebfc2e2 19-Jul-2011 Chad Rosier <mcrosier@apple.com> Refactor r135502 to avoid an empty if else condition, per Eric's suggestion (good call!).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135510 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
b536a1565c9d72a8caacf75d97dffd19cb2777ad 19-Jul-2011 Chad Rosier <mcrosier@apple.com> Clang asserts "Invalid environment!" when using -ccc-host-triple
arch-pc-win32-macho (e.g., x86_64-pc-win32-macho), which appears to be a false
positive.
rdar://9786307

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135502 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f62d43d2afe1960755a1b5813cae1e5983bcac1b 19-Jul-2011 Douglas Gregor <dgregor@apple.com> Revamp the SourceManager to separate the representation of parsed
source locations from source locations loaded from an AST/PCH file.

Previously, loading an AST/PCH file involved carefully pre-allocating
space at the beginning of the source manager for the source locations
and FileIDs that correspond to the prefix, and then appending the
source locations/FileIDs used for parsing the remaining translation
unit. This design forced us into loading PCH files early, as a prefix,
whic has become a rather significant limitation.

This patch splits the SourceManager space into two parts: for source
location "addresses", the lower values (growing upward) are used to
describe parsed code, while upper values (growing downward) are used
for source locations loaded from AST/PCH files. Similarly, positive
FileIDs are used to describe parsed code while negative FileIDs are
used to file/macro locations loaded from AST/PCH files. As a result,
we can load PCH/AST files even during parsing, making various
improvemnts in the future possible, e.g., teaching #include <foo.h> to
look for and load <foo.h.gch> if it happens to be already available.

This patch was originally written by Sebastian Redl, then brought
forward to the modern age by Jonathan Turner, and finally
polished/finished by me to be committed.




git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135484 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
ourceManager.cpp
174cba922331b896949d02d8b1a05f1998ed98e1 16-Jul-2011 Nowar Gu <nowar100@gmail.com> Merge upstream to r135344 at Sat. 16th July 2011.
48b78bda3ede7c77273f9047b9ce2760fa057482 14-Jul-2011 Chris Lattner <sabre@nondot.org> simplify


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135170 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1e5f83ba515157dc7f263dc91b1d51c7a5754c35 14-Jul-2011 Chris Lattner <sabre@nondot.org> StringMap::first() is about to start returning a StringRef, adapt.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135166 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
e02d391ffef647ba0d48b85e211a94d9fb83393f 12-Jul-2011 Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Disable avx feature from corei7-avx, and use -mavx for now. Right now, if -mavx is
specified, 128 avx code is used and we're not sure yet if this the behavior
we want (and if it does, some improvements are needed before relying on it).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134939 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
5af80aa8217ff39424e5e3625da5ca43f17f2dad 12-Jul-2011 Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Enable "avx" feature, so it can be seen by llvm

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134935 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
0673cb30340aadaede7b795c763b00f6b64e611c 11-Jul-2011 Chandler Carruth <chandlerc@gmail.com> Apply patch from Richard Trieu to fix PR9548:

When two different types has the same text representation in the same
diagnostic message, print an a.k.a. after the type if the a.k.a. gives extra
information about the type.

class versa_string;

typedef versa_string string;

namespace std {template <typename T> class vector;}

using std::vector;

void f(vector<string> v);

namespace std {
class basic_string;
typedef basic_string string;
template <typename T> class vector {};
void g() {
vector<string> v;
f(v);
}
}

Old message:
----------------
test.cc:15:3: error: no matching function for call to 'f'
f(&v);
^
test.cc:7:6: note: candidate function not viable: no known conversion from
'vector<string>' to 'vector<string>' for 1st argument
void f(vector<string> v);
^
1 error generated.

New message:
---------------
test.cc:15:3: error: no matching function for call to 'f'
f(v);
^
test.cc:7:6: note: candidate function not viable: no known conversion from
'vector<string>' (aka 'std::vector<std::basic_string>') to
'vector<string>' (aka 'std::vector<versa_string>') for 1st argument
void f(vector<string> v);
^
1 error generated.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134904 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
c3e0fb406fb6fe83566dc6d8b05362e0a2c1e191 09-Jul-2011 Eli Friedman <eli.friedman@gmail.com> Change -mno-mmx to be more compatible with gcc. Specifically, -mno-mmx should not imply -mno-sse.

Note that because we don't usually touch the MMX registers anyway, all -mno-mmx needs to do is tweak the x86-32 calling convention a little for vectors that look like MMX vectors, and prevent the definition of __MMX__.

clang doesn't actually stop the user from using MMX inline asm operands or MMX builtins in -mno-mmx mode; as a QOI issue, it would be nice to diagnose, but I doubt it really matters much.

<rdar://problem/9694837>



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134770 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f972b26368570e5fbbb23e1302b28bbf81c15c69 08-Jul-2011 Evan Cheng <evan.cheng@apple.com> Fix a FIXME in clang ARM driver that was exposed as a bug with ARM backend
change.

Previously clang was passing the following feature strings to the ARM backend
when CPU is cortex-a8: +neon,-vfp2,-vfp3

This used to work because -vfp2,-vfp3 had no effect after +neon. Now that the
features are controlled by individual bits (with implied hierarchy), the net
effect is all three features will be turned off.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134691 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
c8d1ecca1cd3fadbd331d15c420755aa6184554b 08-Jul-2011 Chandler Carruth <chandlerc@gmail.com> Keep track of which source locations are part of a macro argument
instantiation and improve diagnostics which are stem from macro
arguments to trace the argument itself back through the layers of macro
expansion.

This requires some tricky handling of the source locations, as the
argument appears to be expanded in the opposite direction from the
surrounding macro. This patch provides helper routines that encapsulate
the logic and explain the reasoning behind how we step through macros
during diagnostic printing.

This fixes the rest of the test cases originially in PR9279, and later
split out into PR10214 and PR10215.

There is still some more work we can do here to improve the macro
backtrace, but those will follow as separate patches.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134660 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
7c9adf9113b1d1dfeca1d265a7c3bedb3671cfab 08-Jul-2011 Eric Christopher <echristo@apple.com> Fix a typo in the fpsr register and add the fpcr register.

Fixes PR10299 and rdar://9740322

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134654 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
7a759606d93975866051f67104ae58446e55f404 07-Jul-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Move SourceManager::isAt[Start/End]OfMacroInstantiation functions to the Lexer, since they depend on it now.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134644 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
8e627066a0765a7c8df69b3ac6e4f25d8a0ce9d8 07-Jul-2011 Joerg Sonnenberger <joerg@bec.de> FreeBSD gets FreeBSD target, just mipsel.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134619 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
b73377eeb3eff76be134203aebb6068244b177f3 07-Jul-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Make the Preprocessor more memory efficient and improve macro instantiation diagnostics.

When a macro instantiation occurs, reserve a SLocEntry chunk with length the
full length of the macro definition source. Set the spelling location of this chunk
to point to the start of the macro definition and any tokens that are lexed directly
from the macro definition will get a location from this chunk with the appropriate offset.

For any tokens that come from argument expansion, '##' paste operator, etc. have their
instantiation location point at the appropriate place in the instantiated macro definition
(the argument identifier and the '##' token respectively).
This improves macro instantiation diagnostics:

Before:

t.c:5:9: error: invalid operands to binary expression ('struct S' and 'int')
int y = M(/);
^~~~
t.c:5:11: note: instantiated from:
int y = M(/);
^

After:

t.c:5:9: error: invalid operands to binary expression ('struct S' and 'int')
int y = M(/);
^~~~
t.c:3:20: note: instantiated from:
\#define M(op) (foo op 3);
~~~ ^ ~
t.c:5:11: note: instantiated from:
int y = M(/);
^

The memory savings for a candidate boost library that abuses the preprocessor are:

- 32% less SLocEntries (37M -> 25M)
- 30% reduction in PCH file size (900M -> 635M)
- 50% reduction in memory usage for the SLocEntry table (1.6G -> 800M)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134587 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
8b86ef0b71900c64c0c2cfca54cac08a203a16a4 07-Jul-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Fix bug in SourceManager::getDecomposedInstantiationLocSlowCase.

It would add up relative (decomposed) offsets like in getDecomposedSpellingLocSlowCase, but while
it makes sense to preserve the offset among lexed spelling locations, it doesn't make
sense to add anything to the offset of the instantiation location. The instantiation
location will be the same regardless of the relative offset in the tokens that were
instantiated.

This bug didn't actually affect anything because, currently, in practice we never create macro
locations with relative offset greater than 0.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134586 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
d410e741e8085e109c1dc5886c0acea88a4ca0f4 07-Jul-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> For -print-stats, add the number of bytes that SLocEntryTable consumes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134585 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
85bea9777d444ccbcc086d98f075fe666c2e865d 06-Jul-2011 Douglas Gregor <dgregor@apple.com> Keep track of when "unrecoverable" errors occur, then allow
clang_saveTranslationUnit() to save a PCH file if the only errors it
contains are recoverable errors. Fixes <rdar://problem/9727804>.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134503 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
iagnosticIDs.cpp
e855448bc8dddac24a72ba8dc7e936d31e896fe4 06-Jul-2011 Benjamin Kramer <benny.kra@googlemail.com> SmallVectorize a critical vector.

The small number of elements was determined by taking the median
file length in clang+llvm and /usr/include on OS X with xcode installed.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134496 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
caf01c5483d0c2f8542d1e18ca6213dc6d0e54bf 06-Jul-2011 Joerg Sonnenberger <joerg@bec.de> Fix C&P error


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134490 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
9670e179a67d868e171feac44fb8f9e2f108c5e8 06-Jul-2011 Fariborz Jahanian <fjahanian@apple.com> objc-arc: enforce performSelector rules in rejecting retaining selectors
passed to it, and unknown selectors causing potential leak.
// rdar://9659270


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134449 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
e7e66f72221d6233bdad3b87a717e7382acd477b 05-Jul-2011 Eli Friedman <eli.friedman@gmail.com> Remove unused member of Builtin::Info.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134443 91177308-0d34-0410-b5e6-96231b3b80d8
uiltins.cpp
argets.cpp
94c9ce54bf69768166deb2a716863c64b12f77a6 05-Jul-2011 Joerg Sonnenberger <joerg@bec.de> Hook up mipsel-netbsd and mipsel-freebsd for OS specific handling.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134425 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
fa9772b102a2ca59feae2b4463fcd5b9638f8a8d 05-Jul-2011 Joerg Sonnenberger <joerg@bec.de> Use OS-specific configuration for mips-netbsd and mips-freebsd.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134422 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
7cd1de5cc0b28a7c6f09406e92f182f541572b43 05-Jul-2011 Joerg Sonnenberger <joerg@bec.de> Don't define _BIG_ENDIAN for NetBSD/PowerPC.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134411 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
78542df70999c9c7edbf7f4bb0ade643ee79301c 05-Jul-2011 Joerg Sonnenberger <joerg@bec.de> Fix indentation


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134410 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1a83b43d34cfc2eb2a1cc9bf9599cf67e265aeec 05-Jul-2011 Joerg Sonnenberger <joerg@bec.de> Add explicit default case for -Wswitch-enum.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134399 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
9a11b7410aa8e84af18f0c4076bfd030850bc8ba 04-Jul-2011 Joerg Sonnenberger <joerg@bec.de> Use switch(os) style consistently. Add a bunch of NetBSD branches.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134393 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
6ac26fae1ad4a8f0c20dfc032f962a020a044100 04-Jul-2011 Joerg Sonnenberger <joerg@bec.de> On PowerPC, both FreeBSD and NetBSD use ints for (s)size_t


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134392 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
3c54415a4e1db09b210a466469c72d2582ce1d83 02-Jul-2011 Nowar Gu <nowar100@gmail.com> Merge upstream to r134305 at Sat. 2nd July 2011.
aa7333c860ac651c75da495217e0d6a9c10c0bb0 02-Jul-2011 Eric Christopher <echristo@apple.com> Update for llvm commit r134291.

Fixes rdar://9714064


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134292 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
dca5226598097add5d86d57b227aa31df27f0ba4 02-Jul-2011 Douglas Gregor <dgregor@apple.com> Add initial *-*-rtems* target, from Joel Sherrill

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134283 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
949fd1aa675099b4340f7943a92a3ef4074b0323 29-Jun-2011 Bob Wilson <bob.wilson@apple.com> Use preferred 64-bit alignment for i64 & f64 for Thumb targets. Radar 9695134.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134070 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
de31fd7eeebdc64fb043463e7f515dab8eccac8d 28-Jun-2011 Eric Christopher <echristo@apple.com> Split out logic for valid clobbers and valid inline asm registers.

Fixes rdar://9281377


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134016 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
ed37ab82c7790569bcd39f4ba421b17433ef530a 24-Jun-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> SourceManager::isAtStartOfMacroInstantiation should check not only if the location
is at the first token but that the location's offset is not inside the token as well.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133800 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
7062281f240ef9c4fb343614fb2406532307c4a5 23-Jun-2011 Nowar Gu <nowar100@gmail.com> Merge upstream to r133678 at Thu. 23th Jun 2011.
65aa6885818d4b4eea2e5a9d12085b2398148662 21-Jun-2011 Jay Foad <jay.foad@gmail.com> Make more use of llvm::StringRef in various APIs. In particular, don't
use the deprecated forms of llvm::StringMap::GetOrCreateValue().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133515 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
cfd323d0d4476dd4ff64097c91b114067ecaa82b 21-Jun-2011 Eric Christopher <echristo@apple.com> Move additional register names to their own lookup, separate from
register aliases. Fixes unnecessary renames of clobbers.

Fixes part of rdar://9425559


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133485 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
1816442fd19cb2f1c35a807391a6b7f280b35c58 17-Jun-2011 John McCall <rjmccall@apple.com> As a hopefully temporary workaround for a header mistake, treat
__bridge_retain as a synonym for __bridge_retained.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133295 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
dda231a4a72f793476ce2fa5e9f420c5ba76d267 17-Jun-2011 Eric Christopher <echristo@apple.com> Add some more memory constraints for ARM.

Part of rdar://9197685


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133225 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
283f44752a66e6748de955cd82c37de5faf56f7b 17-Jun-2011 Eric Christopher <echristo@apple.com> On ARM make sure that we continue translating 'p' to 'r' for the
constraints.

rdar://9618597


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133222 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
8bfa257f156205ca4b423d83417c39f1a7cdc65f 16-Jun-2011 Evan Cheng <evan.cheng@apple.com> Stylistic fix: move virtual keyword before return type.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133181 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
16c8f9d68ae6d302083763d4733e728634717dec 16-Jun-2011 Nowar Gu <nowar100@gmail.com> Merge upstream to r133163 at Fri. 17th Jun 2011.
098df7f1de80527d7a70e410a5830c8b2d742310 16-Jun-2011 John McCall <rjmccall@apple.com> Unconditionally #define the ARC ownership qualifiers, instead of #defining
them only on Darwin tool chains.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133112 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f85e193739c953358c865005855253af4f68a497 16-Jun-2011 John McCall <rjmccall@apple.com> Automatic Reference Counting.

Language-design credit goes to a lot of people, but I particularly want
to single out Blaine Garst and Patrick Beard for their contributions.

Compiler implementation credit goes to Argyrios, Doug, Fariborz, and myself,
in no particular order.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133103 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
dentifierTable.cpp
argets.cpp
923cd5744a724d9302ea12baa5476ad1c37f474d 15-Jun-2011 John McCall <rjmccall@apple.com> Generate enumerators for diagnostic categories. Patch by Argyrios!
Depends on LLVM r133093.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133094 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
81f9d14f0b987923b37e8e3e256cdfa71e95d4ae 14-Jun-2011 Benjamin Kramer <benny.kra@googlemail.com> StaticDiagNameIndex is never written to, place it into .rodata.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132990 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
dbda513550aaea9f4106455a3fc6b584bacc77f2 13-Jun-2011 Benjamin Kramer <benny.kra@googlemail.com> Put classes into anonymous namespaces.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132924 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
926df6cfabf3eaa4afc990c097fa4619b76a9b57 11-Jun-2011 Douglas Gregor <dgregor@apple.com> Implement Objective-C Related Result Type semantics.

Related result types apply Cocoa conventions to the type of message
sends and property accesses to Objective-C methods that are known to
always return objects whose type is the same as the type of the
receiving class (or a subclass thereof), such as +alloc and
-init. This tightens up static type safety for Objective-C, so that we
now diagnose mistakes like this:

t.m:4:10: warning: incompatible pointer types initializing 'NSSet *'
with an
expression of type 'NSArray *' [-Wincompatible-pointer-types]
NSSet *array = [[NSArray alloc] init];
^ ~~~~~~~~~~~~~~~~~~~~~~
/System/Library/Frameworks/Foundation.framework/Headers/NSObject.h:72:1:
note:
instance method 'init' is assumed to return an instance of its
receiver
type ('NSArray *')
- (id)init;
^

It also means that we get decent type inference when writing code in
Objective-C++0x:

auto array = [[NSMutableArray alloc] initWithObjects:@"one", @"two",nil];
// ^ now infers NSMutableArray* rather than id




git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132868 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
e5df885367b9e122ac11c89ddfbc62375695cdab 10-Jun-2011 Nowar Gu <nowar100@gmail.com> Merge upstream to r132843 at Fri. 10th Jun 2011.
6ce33d67e2ed4f8c9395a807bebd25be04580c0f 08-Jun-2011 Stuart Hastings <stuart@apple.com> Followup to 132737; make two-character string explicit, add some
comments. rdar://problem/9037836


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132752 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
002333f8b2cf1a8614e532f6ce366b21af85142c 08-Jun-2011 Stuart Hastings <stuart@apple.com> Clang support for ARM Uv/Uy/Uq inline-asm constraints.
rdar://problem/9037836


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132737 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
c7f532f9b8e934a0a284d15a739333372e979f61 03-Jun-2011 Nowar Gu <nowar100@gmail.com> Merge upstream to r132540 at Fri. 3rd Jun 2011.
fe87b824477bce3a0c3bf2a8d0e949f0249f9a29 03-Jun-2011 Francois Pichet <pichet2000@gmail.com> My testing shows that function stat has no problem with trailing separators. (tested on Windows and Darwin).

This fixes a bug on Windows:
clang c:\test.cpp

Here the call stat("c:") is not recognized as a directory (must be "c:\").

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132539 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
619e8875d29cc019c7360595f66b9f91b3439494 02-Jun-2011 Akira Hatanaka <ahatanak@gmail.com> Add stuff for o32 ABI conformance.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132443 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
43c9791207a2bd7cef8b17e9bfc4dd87db21690f 28-May-2011 Nowar Gu <nowar100@gmail.com> Merge upstream r132249 at Sat. 28th. May 2011.
469244a322dd5d35cee1d02d70a2edbc12ac5ce7 28-May-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Add a couple of helper methods in the SourceManager API, isAtStartOfMacroInstantiation/isAtEndOfMacroInstantiation
useful only for source locations that point at a macro token.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132247 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
477aab6782795e7472055a54108d2df270ce1a89 25-May-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> A StringRef-ication of the DiagnosticIDs API and internals.

Patch by Matthieu Monrocq with tweaks by me to avoid StringRefs in the static
diagnostic data structures, which resulted in a huge global-var-init function.

Depends on llvm commit r132046.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132047 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
iagnosticIDs.cpp
848afb0c1ff4571ca7a21927ecc2699ea2e7429a 24-May-2011 Nowar Gu <nowar100@gmail.com> Merge upstream to r131958 at Tue. 24th May 2011.
b65b672c7bd13bc145a2dedc210f46b11858b514 20-May-2011 Benjamin Kramer <benny.kra@googlemail.com> sandybridge is now called corei7-avx

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131729 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
7dfd96fd5f4e63071f5d4f684e9f0e1928d226c7 20-May-2011 Nowar Gu <nowar100@gmail.com> Merge upstream to r131722 at Fri. 20th May 2011.
5adc0515aaacb6c4d4f0c9626d86c1e5c177467c 18-May-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Do some safety checks.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131491 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
0c115a16d479c7cda12c66bceb3782fd45177481 14-May-2011 Nowar Gu <nowar100@gmail.com> Fix Android.mk.
ndroid.mk
d01d2b2de449d68e6c44d99a12c0c1fc53222113 14-May-2011 Nowar Gu <nowar100@gmail.com> Merge upstream to r131335 at Sat. 14th May 2011.
84f95cf115bc9031179e3b2c10a628dee3551142 13-May-2011 Bob Wilson <bob.wilson@apple.com> Define __ARM_NEON__ in both ARM and Thumb modes. Radar 9431992.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131301 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
0e9972ccccf4e2baf1f65d4cf70f26897d285442 09-May-2011 John McCall <rjmccall@apple.com> __builtin_va_list is void* on ARM, not char*.
rdar://problem/9391966



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131080 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
e59abb56ce0e1c206fb80bd945a0c358b0abe1ef 05-May-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Introduce a Diagnostic::Report function that accepts and emits a StoredDiagnostic.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130919 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
cb65de1b211aab46a0c6ddb3d323bdd21e8de378 03-May-2011 Daniel Dunbar <daniel@zuster.org> Revert r130750, "Make the mno flags match GCC. Patch by Alexander Best!", it breaks tests.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130753 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
d8b9d687544d094f6e92e1faf877296d3ce8828e 03-May-2011 Michael J. Spencer <bigcheesegs@gmail.com> Make the mno flags match GCC. Patch by Alexander Best!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130750 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f61b831d7f6a15676b07647f507de80324cb7056 28-Apr-2011 Ted Kremenek <kremenek@apple.com> Enhance clang_getCXTUResourceUsage() to report how much memory is used by SourceManager's memory buffers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130433 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
4d53be4a470fc546b4c1e7618a11cf8bc7c00675 27-Apr-2011 Eric Christopher <echristo@apple.com> Remove this assert, I don't think it's being helpful and people have
been running into it.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130296 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f1cc1d0efddc40a76ab70b074792dcd7e5ca4315 23-Apr-2011 Jay Foad <jay.foad@gmail.com> Like the coding standards say, do not use "using namespace std".

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130054 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
144bc08f5fe6046bd8e07de5e41a4237dd2c6275 22-Apr-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Don't hide #warnings in a system header, same as gcc. Fixes rdar://8495837.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129951 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
cfdadfe547015b916bd59aec892caa972ff76cf0 22-Apr-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Move the check whether a diagnostic must be ignored because it is in a system header
inside DiagnosticIDs::getDiagnosticLevel.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129950 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
8a3a7f36aea62a91d12a4aafd16cc32081ad11cf 21-Apr-2011 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Allow OS X deployment targets like 10.4.11, even though they
can't be represented in the environment define.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129939 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
285dc6530b37d632cd858bac444d29044de4d283 20-Apr-2011 Justin Holewinski <justin.holewinski@gmail.com> PTX: Add PTX intrinsics as builtins and add ptx32 and ptx64 as valid architectures for triples, e.g. ptx32-unknown-unknown

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129870 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
e23ac65af568ffe611b0990818ac3a57c856a4d8 20-Apr-2011 Douglas Gregor <dgregor@apple.com> Teach SourceManager::getSLocEntry() that it can fail due to problems
during deserialization from a precompiled header, and update all of
its callers to note when this problem occurs and recover (more)
gracefully. Fixes <rdar://problem/9119249>.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129839 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
a4ff648d4a75c752cbdf884c81f4926670f8e6c7 20-Apr-2011 Daniel Dunbar <daniel@zuster.org> TWEAK

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129835 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
659d23a4e645c1d7a700da05a1b1aabf9fd4c6f3 20-Apr-2011 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Switch to using -macosx for OS name in triples.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129834 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
db57a4cdb0a6abf3239f3a794a900ce312c5887b 19-Apr-2011 Daniel Dunbar <daniel@zuster.org> ADT/Triple: Switch to using .isOSDarwin() predicate.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129823 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
0d027ba3e5b0e59ecde05747330a871ba174a0da 19-Apr-2011 Daniel Dunbar <daniel@zuster.org> Basic/Darwin: Add support for new -osx and -ios style triples (not yet used).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129820 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
97f55d6ffd548d1777d790c84b358030682f9de2 19-Apr-2011 Ted Kremenek <kremenek@apple.com> Add SelectorTable::getTotalMemory() to allow clients to query how much memory is used by selectors.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129728 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
b24bac98aa90f1076f348b05b18dc34d6d144521 17-Apr-2011 Michael J. Spencer <bigcheesegs@gmail.com> Make -mno-mmx imply -mno-3dnow. This is what gcc does, and it makes sense.
Also, fold the sse4 and sse4.1 cases together.

Patch by Alexander Best!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129665 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
7d2b8c1fcc2b707be78b09930a7767477822462f 16-Apr-2011 Douglas Gregor <dgregor@apple.com> Initial work to improve documentation for Clang's diagnostics, from Matthieu Monrocq

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129614 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
iagnosticIDs.cpp
fc8f0e14ad142ed811e90fbd9a30e419e301c717 15-Apr-2011 Chris Lattner <sabre@nondot.org> fix a bunch of comment typos found by codespell. Patch by
Luis Felipe Strano Moraes!



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129559 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
ourceManager.cpp
argetInfo.cpp
7e7fbd05a5dfdb0addfc8b5af2fcbed8c7b5fb87 15-Apr-2011 Peter Collingbourne <peter@pcc.me.uk> C1X: add a language standard

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129553 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
a5fc472b353b88be3b4981da946fb01f5a5cc0c6 10-Apr-2011 John McCall <rjmccall@apple.com> Fix a bunch of major problems with __unknown_anytype and properly test
for them. The only major missing feature is references.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129234 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
67922922cf3d9a2c5b4a02b1ee27e81da3850b53 09-Apr-2011 Dylan Noblesmith <nobled@dreamwidth.org> refactor flags for TokenKinds.def

Make KEYALL a combination of all other flags instead
of its own separate flag. Also rewrite the enum
definitions in hex instead of decimal.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129213 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
156119df1d076b63609618976281961283f871db 09-Apr-2011 Eric Christopher <echristo@apple.com> Eat the UTF-8 BOM at the beginning of a file since it's ignored anyhow.

Nom Nom Nom.

Patch by Anton Korobeynikov!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129174 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
0c959fc7f1e1006f44eae6fdb5b659eb12bf8ddc 06-Apr-2011 Nowar Gu <nowar100@gmail.com> Add some source files into Android.mk.
ndroid.mk
9a7319305fc25222b91d585dfa056c8cdbac8434 06-Apr-2011 Nowar Gu <nowar100@gmail.com> Merge upstream until 2011.04.05.
bcaa3b8f1ac945d64cbf6d4d659271b6ef70068b 05-Apr-2011 Roman Divacky <rdivacky@freebsd.org> Enable sse4 and aes for SandyBridge. Leave avx support commented out for now.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128923 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
3a41d145e4e1e363637eba892c2be8582efe2178 05-Apr-2011 Sandeep Patel <deeppatel1987@gmail.com> Explain why layout prefers 32 for small types on Thumb.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128850 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
cd5ce091a18bdc601758495b583d33f8667f4272 04-Apr-2011 Bob Wilson <bob.wilson@apple.com> Change ARM data layout strings to match llvm-gcc.
Sandeep Patel noticed that the alignment was wrong for Neon vector types,
and this change is partly derived from his patch. For the APCS ABI, however,
additional changes were required: the maximum ABI alignment is 32 bits and
the preferred alignment for i64 and f64 types should be 64 bits.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128825 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f445debe3a6825e6528655db0906ce4fa41240ea 01-Apr-2011 csmon <csmon@csmon-desktop.(none)> Merge branch 'upstream' into logan-fastforward-20110320
ad1a4c6e89594e704775ddb6b036ac982fd68cad 31-Mar-2011 Daniel Dunbar <daniel@zuster.org> Change Clang's __VERSION__ to include the same basic info as in clang -v.
- Please never ever ever ever write a tool that sniffs this.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128599 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
9a4a9c25fc32b9c19fa0c20acfe5e44efa24fd02 31-Mar-2011 Daniel Dunbar <daniel@zuster.org> Basic: Add support for a build variable to set the repository path that goes
into the Clang version.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128595 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
dc0a2da1038cc725ad23d070e6a0d03078b7300d 26-Mar-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> For Diagnostic::Reset() also reset the state related to #pragma diagnostic. Fixes rdar://9170766.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128346 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
0a0d2b179085a52c10402feebeb6db8b4d96a140 23-Mar-2011 Douglas Gregor <dgregor@apple.com> Implement a new 'availability' attribute, that allows one to specify
which versions of an OS provide a certain facility. For example,

void foo()
__attribute__((availability(macosx,introduced=10.2,deprecated=10.4,obsoleted=10.6)));

says that the function "foo" was introduced in 10.2, deprecated in
10.4, and completely obsoleted in 10.6. This attribute ties in with
the deployment targets (e.g., -mmacosx-version-min=10.1 specifies that
we want to deploy back to Mac OS X 10.1). There are several concrete
behaviors that this attribute enables, as illustrated with the
function foo() above:

- If we choose a deployment target >= Mac OS X 10.4, uses of "foo"
will result in a deprecation warning, as if we had placed
attribute((deprecated)) on it (but with a better diagnostic)
- If we choose a deployment target >= Mac OS X 10.6, uses of "foo"
will result in an "unavailable" warning (in C)/error (in C++), as
if we had placed attribute((unavailable)) on it
- If we choose a deployment target prior to 10.2, foo() is
weak-imported (if it is a kind of entity that can be weak
imported), as if we had placed the weak_import attribute on it.

Naturally, there can be multiple availability attributes on a
declaration, for different platforms; only the current platform
matters when checking availability attributes.

The only platforms this attribute currently works for are "ios" and
"macosx", since we already have -mxxxx-version-min flags for them and we
have experience there with macro tricks translating down to the
deprecated/unavailable/weak_import attributes. The end goal is to open
this up to other platforms, and even extension to other "platforms"
that are really libraries (say, through a #pragma clang
define_system), but that hasn't yet been designed and we may want to
shake out more issues with this narrower problem first.

Addresses <rdar://problem/6690412>.

As a drive-by bug-fix, if an entity is both deprecated and
unavailable, we only emit the "unavailable" diagnostic.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128127 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
argetInfo.cpp
argets.cpp
ersionTuple.cpp
d9c3fa30bc6914c12b025073d2779a3ddb8f4787 22-Mar-2011 Eli Friedman <eli.friedman@gmail.com> Make the definition of "long double" consistent for llvm::Triple::Win32 for
both 32-bit and 64-bit targets.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128110 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
97d2d2e368d3ead34d83c328383711c7dabab60a 22-Mar-2011 Logan Chien <tzuhsiang.chien@gmail.com> Merge with clang upstream r127980 (Mar 20th 2011)
a291d5fb78bd7b95d825cb3c6ddd5dff44f6f624 21-Mar-2011 Bob Wilson <bob.wilson@apple.com> Another cortex-m0 patch from James Orr.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128029 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
cd1eecfe4f43a542c8f9a6e7d12fa69b28c23a67 21-Mar-2011 Ted Kremenek <kremenek@apple.com> Relax assertion to fail during crash recovery cleanup.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128010 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
03201fbbdeb3eb7f465610b09c281ee6aa84e3ca 21-Mar-2011 Ted Kremenek <kremenek@apple.com> Use CrashRecoveryContextCleanup objects to reclaim resources from CompilerInstance objects.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128009 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
8e02635c9c276720a1e6f926b33303a53cebe9c7 18-Mar-2011 Logan Chien <tzuhsiang.chien@gmail.com> Merge with clang upstream r127869 (Mar 18th 2011)
9ae186f7cac22a1652bb19658393fda4ecf3a463 19-Mar-2011 Daniel Dunbar <daniel@zuster.org> Unbreak build.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127942 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
207f4d8543529221932af82836016a2ef066c917 18-Mar-2011 Peter Collingbourne <peter@pcc.me.uk> Add support for language-specific address spaces. On top of that,
add support for the OpenCL __private, __local, __constant and
__global address spaces, as well as the __read_only, _read_write and
__write_only image access specifiers. Patch originally by ARM;
language-specific address space support by myself.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127915 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
7dbafb3ade491a41100c97597209455ee10c537d 18-Mar-2011 Anders Carlsson <andersca@mac.com> Add FileManager::getNoncachedStatValue, which will resolve relative paths against the working directory specified in the file system options.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127893 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
3cd0128ce49abe658d1858c541e836e57959e04a 16-Mar-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Having FileManager::getFile always open the file, brought much consternation and leaking of file descriptors.

Add 'openFile' bool to FileManager::getFile to specify whether we want to have the file opened or not, have it
false by default, and enable it only in HeaderSearch.cpp where the open+fstat optimization matters.

Fixes rdar://9139899.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127748 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
853134a0ba349a78e92b8a4a935cb5860fcc3a04 15-Mar-2011 NAKAMURA Takumi <geek4civic@gmail.com> lib/Basic/Targets.cpp: __declspec(attr) should be provided on mingw as macro, alias of __attribute__.

On mingw without -fms-extensions, we can provide "as-is" __declspec.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127655 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
a8d530e3ad52cca33a81185ccc9518eab23ddb11 15-Mar-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Stop leaking file descriptors.

After the open+fstat optimization, files were already opened for FileManager::getBufferForFile() and we closed them after reading them.
The problem was that when -working-directory was passed, the code path that actually reuses & closes the already opened file descriptor
was not followed.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127639 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
2e2468e2d2ccbb9a38fe3b6b754009af7e5d39a9 14-Mar-2011 Anders Carlsson <andersca@mac.com> Get rid of the static FileManager::FixupRelativePath.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127573 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
d271e4b0c6c42a0e670226e697963df427e35a56 07-Mar-2011 Logan Chien <tzuhsiang.chien@gmail.com> Apply changes to merge with clang upstream (6th Mar 2011)
ndroid.mk
27d70656d3ce7c9e030b6dea468cfc96687010d5 09-Mar-2011 Logan Chien <tzuhsiang.chien@gmail.com> Merge with clang upstream (Nov 6th 2011)
299a4a967b02c9f0d0d94ad8560e3ced893f9116 09-Mar-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Add 'OverridenFilesKeepOriginalName' field in SourceManager which if true the SourceManager
should report the original file name for contents of files that were overriden by other files,
otherwise it should report the name of the new file. Default is true.

Also add similar field in PreprocessorOptions and pass similar parameter in ASTUnit::LoadFromCommandLine.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127289 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
17c964ad98968ad7d88e60b4a60d463d3c5ffb4d 08-Mar-2011 NAKAMURA Takumi <geek4civic@gmail.com> lib/Basic/Targets.cpp: mingw-w64 should define __MINGW32__, too.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127238 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
03fd362dbf6fcd077df566fe2ac3165be668323b 07-Mar-2011 Anders Carlsson <andersca@mac.com> Check in the implementation as well...


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127144 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
af036a6c25f540a9daf51e721485ae6d0e645bd8 06-Mar-2011 Anders Carlsson <andersca@mac.com> Convert FileManager::FixupRelativePath over to using PathV2.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127133 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
b1c86492f9a9bef01a4567408c22f961bbd604fe 05-Mar-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Currently we can only remap a file by creating a MemoryBuffer and replacing the file contents with it.
Allow remapping a file by specifying another filename whose contents should be loaded if the original
file gets loaded. This allows to override files without having to create & load buffers in advance.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127052 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
5ecb0486de7ec68e806c3904727ef9080dbe2c03 02-Mar-2011 Shih-wei Liao <sliao@google.com> Merge "Make sure to always check the result of SourceManager::getPresumedLoc(), so that we don't try to make use of an invalid presumed location. Doing so can cause crashes."
85f3d76c0ecfdefcf83ea44a57b7a16119c8a045 02-Mar-2011 John McCall <rjmccall@apple.com> Move some of the logic about classifying Objective-C methods into
conventional categories into Basic and AST. Update the self-init checker
to use this logic; CFRefCountChecker is complicated enough that I didn't
want to touch it.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126817 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
053ec969e3023e4b4a666546476ff74e6bfdfd9a 27-Feb-2011 Logan <tzuhsiang.chien@gmail.com> Merge with clang upstream Nov 10th 2010.
7decebfc7b9dc841f228c93cc2e41e3e62911ff8 25-Feb-2011 Ted Kremenek <kremenek@apple.com> Teach TextDiagnosticPrinter to print out '-Werror' in addition to the warning flag for a warning mapped to an error.

For example:

t.c:7:9: error: using the result of an assignment as a condition without parentheses [-Werror,-Wparentheses]

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126466 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
5ef04ee40c3332d31b6d1439f50d0ddb45812929 23-Feb-2011 Chandler Carruth <chandlerc@gmail.com> Switch the VerifyDiagnosticsClient to use PresumedLocs now that they
exist. Cheat and do this by adding some wrappers around the PresumedLoc
machinery that directly return the line and column number.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126281 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
e177d3b7445ebe9358f0858a4a23453c4b750c0f 22-Feb-2011 Daniel Dunbar <daniel@zuster.org> Targets/Darwin: mcount name on Darwin needs to be unmangled.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126152 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
26ed5f1b0df3e2bf7ec4715c2c3afd26408ff1b7 20-Feb-2011 Richard Smith <richard-llvm@metafoo.co.uk> Test commit.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126063 91177308-0d34-0410-b5e6-96231b3b80d8
uiltins.cpp
4b93d660c6326ec79b5e369317d1051cf826c2f3 20-Feb-2011 Peter Collingbourne <peter@pcc.me.uk> Re-instate r125819 and r125820 with no functionality change

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126060 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
96b1d4b4eb6b18dd6df7a2c0833332b45840580f 19-Feb-2011 Rafael Espindola <rafael.espindola@gmail.com> Revert 125820 and 125819 to fix PR9266.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126050 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
813d8346529bf094eb2b249648906ba7fd226688 18-Feb-2011 Douglas Gregor <dgregor@apple.com> Selector::getIdentifierInfoForSlot() can return NULL values, a fact
that was ignored in a few places (most notably, code
completion). Introduce Selector::getNameForSlot() for the common case
where we only care about the name. Audit all uses of
getIdentifierInfoForSlot(), switching many over to getNameForSlot(),
fixing a few crashers.

Fixed <rdar://problem/8939352>, a code-completion crasher.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125977 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
c9109297856fd32f10c29127c3cdae6a38019a3e 18-Feb-2011 NAKAMURA Takumi <geek4civic@gmail.com> [Heikki Kultala] This patch contains the ABI changes for the TCE target.

TCE target has some too strict alignment rules (that the HW really does not require, but which caused problems elsewhere) for data types and an ABI change was decided.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125833 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
ef9a1d0e13662162aa8cdae8732c33b5d751d80c 18-Feb-2011 Peter Collingbourne <peter@pcc.me.uk> Move TargetInfo::adjustInlineAsmType to TargetCodeGenInfo

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125819 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
0aa205765aec0aa5eed672f8e3cade543372edcd 17-Feb-2011 NAKAMURA Takumi <geek4civic@gmail.com> Triple::MinGW64 is deprecated and removed. We can use Triple::MinGW32 instead.

No one uses *-mingw64. mingw-w64 is represented as {i686|x86_64}-w64-mingw32.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125742 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
37c02bf479c86c31ad2af75adbe1ead2b928ca93 16-Feb-2011 Douglas Gregor <dgregor@apple.com> Fix a thinko with llvm::Optional, which is clearly the most dangerous class template in the universe

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125679 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
f315fa81eef1977b3457fd7a7d4639e060fe7278 14-Feb-2011 Peter Collingbourne <peter@pcc.me.uk> OpenCL: add support for __kernel, kernel keywords and EXTENSION,
FP_CONTRACT pragmas. Patch originally by ARM.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125475 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
0a86d44703fc5cd3cd38ea1708176f5b44321ed8 12-Feb-2011 Jeffrey Yasskin <jyasskin@google.com> Add CMake dependencies so that LLVM_USED_LIBS order doesn't matter.

I also sorted the tools/driver dependencies since their order no
longer matters.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125417 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
21af8878b96ab1f9b077407ca3c512e5dc5d0ad6 11-Feb-2011 Zhanyong Wan <wan@google.com> Uses llvm::sys::path instead of hand-rolled algorithm in FileManager.
Reviewed by dgregor.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125407 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
9b555ea217565ac0f8bf7255b29496916cb03476 11-Feb-2011 Zhanyong Wan <wan@google.com> Improves Clang's virtual file handling.

This patch contains:

- making some of the existing comments more accurate in the presence
of virtual files/directories.

- renaming some private data members of FileManager to match their roles better.

- creating 'DirectorEntry's for the parent directories of virtual
files, such that we can tell whether two virtual files are from the
same directory. This is useful for injecting virtual files whose
directories don't exist in the real file system.

- minor clean-ups and adding comments for class
FileManager::UniqueDirContainer and FileManager::UniqueFileContainer.

- adding statistics on virtual files to FileManager::PrintStats().

- adding unit tests to verify the existing and new behavior of FileManager.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125384 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
b7a1841244418b658bcf64573ff0c00867fb9c5d 11-Feb-2011 Douglas Gregor <dgregor@apple.com> Don't compare llvm::Optional<> objects directly; compare their
contents when it's safe. I just *love* C++ some days.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125378 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
cfbf1c7536e016dc275139dd842d4a5f059a749f 10-Feb-2011 Douglas Gregor <dgregor@apple.com> Implement two related optimizations that make de-serialization of
AST/PCH files more lazy:
- Don't preload all of the file source-location entries when reading
the AST file. Instead, load them lazily, when needed.
- Only look up header-search information (whether a header was already
#import'd, how many times it's been included, etc.) when it's needed
by the preprocessor, rather than pre-populating it.

Previously, we would pre-load all of the file source-location entries,
which also populated the header-search information structure. This was
a relatively minor performance issue, since we would end up stat()'ing
all of the headers stored within a AST/PCH file when the AST/PCH file
was loaded. In the normal PCH use case, the stat()s were cached, so
the cost--of preloading ~860 source-location entries in the Cocoa.h
case---was relatively low.

However, the recent optimization that replaced stat+open with
open+fstat turned this into a major problem, since the preloading of
source-location entries would now end up opening those files. Worse,
those files wouldn't be closed until the file manager was destroyed,
so just opening a Cocoa.h PCH file would hold on to ~860 file
descriptors, and it was easy to blow through the process's limit on
the number of open file descriptors.

By eliminating the preloading of these files, we neither open nor stat
the headers stored in the PCH/AST file until they're actually needed
for something. Concretely, we went from

*** HeaderSearch Stats:
835 files tracked.
364 #import/#pragma once files.
823 included exactly once.
6 max times a file is included.
3 #include/#include_next/#import.
0 #includes skipped due to the multi-include optimization.
1 framework lookups.
0 subframework lookups.

*** Source Manager Stats:
835 files mapped, 3 mem buffers mapped.
37460 SLocEntry's allocated, 11215575B of Sloc address space used.
62 bytes of files mapped, 0 files with line #'s computed.

with a trivial program that uses a chained PCH including a Cocoa PCH
to

*** HeaderSearch Stats:
4 files tracked.
1 #import/#pragma once files.
3 included exactly once.
2 max times a file is included.
3 #include/#include_next/#import.
0 #includes skipped due to the multi-include optimization.
1 framework lookups.
0 subframework lookups.

*** Source Manager Stats:
3 files mapped, 3 mem buffers mapped.
37460 SLocEntry's allocated, 11215575B of Sloc address space used.
62 bytes of files mapped, 0 files with line #'s computed.

for the same program.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125286 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
be4c8705e499b55548467eb7adaa23cbc6edfef9 10-Feb-2011 Roman Divacky <rdivacky@freebsd.org> Implement mcount profiling, enabled via -pg.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125282 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
886e1606c28e970bb288abf4dbc40feb16822a79 10-Feb-2011 NAKAMURA Takumi <geek4civic@gmail.com> CMake: LLVM_NO_RTTI must be obsolete now!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125275 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
100f239df90c2576cfd6ce4fdcf3886033c00e26 08-Feb-2011 Rafael Espindola <rafael.espindola@gmail.com> Update for API change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125129 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
8ef6c8cb6c5627240e2339fd7062c9873f821d7e 05-Feb-2011 Douglas Gregor <dgregor@apple.com> Improve our uniquing of file entries when files are re-saved or are
overridden via remapping. Thus, when we create a "virtual" file in the
file manager, we still stat() the real file that lives behind it so
that we can provide proper uniquing based on inodes. This helps keep
the file manager much more consistent.

To take advantage of this when reparsing files in libclang, we disable
the use of the stat() cache when reparsing or performing code
completion, since the stat() cache is very likely to be out of date in
this use case.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124971 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
4814fb560322daf009fda6226cffccb10bd44620 04-Feb-2011 Douglas Gregor <dgregor@apple.com> If any Fix-Its attached to a diagnostic have invalid source locations
or source locations that refer into a macro instantiation, delete all
of the Fix-Its on that diagnostic.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124833 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
86a4d0dd6a630639aab7715323ed068940e650af 03-Feb-2011 Douglas Gregor <dgregor@apple.com> Teach SourceManager::getLocation() how to cope with a source file
whose inode has changed since the file was first created and that is
being seen through a different path name (e.g., due to symlinks or
relative path elements), such that its FileEntry pointer doesn't match
a known FileEntry pointer. Since this requires a system call (to
stat()), we only perform this deeper checking if we can't find the
file by comparing FileEntry pointers.

Also, add a micro-optimization where we don't bother to compute line
numbers when given the location (1, 1). This improves the
efficiency of clang_getLocationForOffset().



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124800 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
50ae3e3f10ccbb8c04c9ea941d930973ccf231bd 03-Feb-2011 Rafael Espindola <rafael.espindola@gmail.com> Revert 124754 and 124760 as they made clang unusable in the presence of symbolic
links.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124776 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
b9d4cb38815fd2173a9f0512dfe2024d61bbcec7 03-Feb-2011 Douglas Gregor <dgregor@apple.com> Improve the performance of filename canonicalization by avoiding
redundant searches in the string. No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124760 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
aa596e877062ddd45d65705622a58587c5ba54b6 02-Feb-2011 Douglas Gregor <dgregor@apple.com> Canonicalize path names in the file manager before performing a lookup
on that name. Canonicalization eliminates silliness such as "." and
"foo/.." that breaks the uniquing of files in the presence of virtual
files or files whose inode numbers have changed during
parsing/re-parsing. c-index-test isn't able to create this crazy
situation, so I've resorted to testing outside of the Clang
tree. Fixes <rdar://problem/8928220>.

Note that this hackery will go away once we have a real virtual file
system on which we can layer FileManager; the virtual-files hack is
showing cracks.




git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124754 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
fb7049a21969d856292c278950c0a5c70986d412 01-Feb-2011 Douglas Gregor <dgregor@apple.com> Support EFI target triple, from Carl Norum!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124660 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
3de84241d90f3dd280126fdf2c4651667151c967 31-Jan-2011 Douglas Gregor <dgregor@apple.com> Harden Lexer::GetBeginningOfToken() against bogus source locations and
the disappearance/alteration of files.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124616 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
4f5e21e24fb9e6ec473a13f83b5c9a2c41501a70 31-Jan-2011 Douglas Gregor <dgregor@apple.com> Teach Diagnostic::setClient() to free the existing, owned
client. Fixes a libclang leak.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124614 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
418df343bb50802586d20aae3b83e2eb44c6c828 27-Jan-2011 Douglas Gregor <dgregor@apple.com> Separate the access-control diagnostics from other diagnostics that do not have SFINAE behavior.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124441 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
04331169f04198eb769925fa17696a21989c9d8b 27-Jan-2011 Axel Naumann <Axel.Naumann@cern.ch> TextDiagnosticPrinter.cpp: Show diagnostics as far as possible even with invalid PresomedLoc, instead of just silencing it.

FileManager.cpp: Allow virtual files in nonexistent directories.
FileManager.cpp: Close FileDescriptor for virtual files that correspond to actual files.
FileManager.cpp: Enable virtual files to be created even for files that were flagged as NON_EXISTENT_FILE, e.g. by a prior (unsuccessful) addFile().

ASTReader.cpp: Read a PCH even if the original source files cannot be found.

Add a test for reading a PCH of a file that has been removed and diagnostics referencing that file.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124374 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
150e0efec6302fa5a8c3b5c3c4ecf5778d3a29f5 19-Jan-2011 Logan <tzuhsiang.chien@gmail.com> Add build rules for clang executable.
ndroid.mk
79521990f774dfd1b8bcfd62179234a223c34d84 17-Jan-2011 NAKAMURA Takumi <geek4civic@gmail.com> lib/Basic/Targets.cpp: __builtin_va_list is as same on win64 mingw64!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123691 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1b24cd3475838aade59d8ca06dc8cabd42aa4fe0 17-Jan-2011 NAKAMURA Takumi <geek4civic@gmail.com> lib/Basic/Targets.cpp: Fix __declspec() on Mingw-w64.

It should be defined as-is. Some headers would detect existence of __declspec and use one.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123690 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
8c959d92de08f5dd6e68d2d01f87338ae861fdac 17-Jan-2011 NAKAMURA Takumi <geek4civic@gmail.com> lib/Basic/Targets.cpp: Set user_label_prefix on Win64 both mingw and msvc.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123689 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
3efd52cf8f4e57c5571bd8cc3168264c3bc46a1e 14-Jan-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Properly propagate #pragma diagnostic mappings from PCH but not command-line warning flags.
Addresses rdar://8435969&8852495

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123462 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
iagnosticIDs.cpp
12e8464da2769bbc1205194714d84c905a571081 12-Jan-2011 Douglas Gregor <dgregor@apple.com> wint_t is defined as 'unsigned int' on Linux. Fixes PR8938.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123320 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f84109ee6aeffb09366bd70c8593ce1b7818b1ad 07-Jan-2011 Fariborz Jahanian <fjahanian@apple.com> Update AST reader/writer to handle new AppleKext.
Fix an unexpected hickup caused by exceeding size of
generated table (and a misleading comment). Improve
on help message for -fapple-kext.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123003 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticIDs.cpp
06f45635dd2502fbbd1acb59517130ff56869d91 06-Jan-2011 Bob Wilson <bob.wilson@apple.com> Add cortex-m3 CPU to getCPUDefineSuffix mapping.
Patch by Sylvère Teissier.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122965 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
c81f2a2c7f83e64b3ef2b77030536290d0e2b350 06-Jan-2011 Roman Divacky <rdivacky@freebsd.org> PowerPC fixes.

Fix the width and align of bool type on Darwin to be 32bits
while keeping it 8 everywhere else.

Change the definition of va_list to default to SV4 ABI one
and let darwin subtarget override this.

Both changes submitted by Nathan Whitehorn and reviewed
by Rafael Espindola.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122956 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
c8b09a1fa2112964496f27094010bae45c97c42a 29-Dec-2010 Roman Divacky <rdivacky@freebsd.org> set features for k8-sse3



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122629 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
3f59c975aa5d047f7edd1b900b5e885c38af0ef7 26-Dec-2010 Chris Lattner <sabre@nondot.org> The -fshort-wchar option causes wchar_t to become unsigned, in addition to being
16-bits in size. Implement this by splitting WChar into two enums, like we have
for char. This fixes a miscompmilation of XULRunner, PR8856.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122558 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
ee933e1cc2718bd829c4649d060fc9f686005990 24-Dec-2010 Argyrios Kyrtzidis <akyrtzi@gmail.com> Handle locations coming from macro instantiations properly in SourceManager::isBeforeInTranslationUnit().
Fixes rdar://8790245 and http://llvm.org/PR8821.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122536 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
b68e39930d06ed81a2b431dc09e4cb97e5c0d57a 21-Dec-2010 Douglas Gregor <dgregor@apple.com> In C++, if the user redeclares a builtin function with a type that is
inconsistent with the type that the builtin *should* have, forget
about the builtin altogether: we don't want subsequence analyses,
CodeGen, etc., to think that we have a proper builtin function.

C is protected from errors here because it allows one to use a
library builtin without having a declaration, and detects inconsistent
(re-)declarations of builtins during declaration merging. C++ was
unprotected, and therefore would crash.

Fixes PR8839.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122351 91177308-0d34-0410-b5e6-96231b3b80d8
uiltins.cpp
fbfd180495e7800975c6d9bdc6d24e706ef70e34 21-Dec-2010 Michael J. Spencer <bigcheesegs@gmail.com> Replace all uses of PathV1::makeAbsolute with PathV2::fs::make_absolute.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122340 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
403ba3522d1b1c97ae5fad81c1a2c4b3a754e1c1 19-Dec-2010 Nick Lewycky <nicholas@mxc.ca> Add missing standard includes. Patch by Joerg Sonnenberger!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122194 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
256053b31e697fdf0cc48f17d621c82fc3b8dff0 17-Dec-2010 Michael J. Spencer <bigcheesegs@gmail.com> Replace all uses of PathV1::isAbsolute with PathV2::is_{absolute,relative}.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122087 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
ileSystemStatCache.cpp
4eeebc464e1f968d9968a4786c82558f18ac2ed8 16-Dec-2010 Michael J. Spencer <bigcheesegs@gmail.com> MemoryBuffer API update.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121956 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
0827408865e32789e0ec4b8113a302ccdc531423 15-Dec-2010 Argyrios Kyrtzidis <akyrtzi@gmail.com> Fix diagnostic pragmas.

Diagnostic pragmas are broken because we don't keep track of the diagnostic state changes and we only check the current/latest state.
Problems manifest if a diagnostic is emitted for a source line that has different diagnostic state than the current state; this can affect
a lot of places, like C++ inline methods, template instantiations, the lexer, etc.

Fix the issue by having the Diagnostic object keep track of the source location of the pragmas so that it is able to know what is the diagnostic state at any given source location.

Fixes rdar://8365684.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121873 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
iagnosticIDs.cpp
ourceLocation.cpp
a48fa4bdf716b77bcecade0743c7eb22e47aba01 12-Dec-2010 Wesley Peck <peckw@wesleypeck.com> Change MBlaze target to have the same description string as its LLVM equivalent.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121640 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
3a321e23f66128dbb986343927456ff6702af617 09-Dec-2010 Michael J. Spencer <bigcheesegs@gmail.com> Use error_code instead of std::string* for MemoryBuffer.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121378 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
c0f31fd08537b65ad92db8ce860747e3402a07e6 02-Dec-2010 Chris Lattner <sabre@nondot.org> attempt to fix a buildbot failure, apparently apache fails to build.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120688 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
ileSystemStatCache.cpp
67aba816901503d9cf7ba699525fa62cc7f8e5e4 30-Nov-2010 Fariborz Jahanian <fjahanian@apple.com> Such function decls,as objc's objc_msgSend, builtins in
a specific language. We are adding such language info. by
extensing Builtins.def and via a language flag added
to LIBBUILTIN/BUILTIN and check for that when deciding
a name is builtin or not. Implements //rdar://8689273.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120429 91177308-0d34-0410-b5e6-96231b3b80d8
uiltins.cpp
argets.cpp
03013fa9a0bf1ef4b907f5fec006c8f4000fdd21 29-Nov-2010 Michael J. Spencer <bigcheesegs@gmail.com> Merge System into Support.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120297 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
ileSystemStatCache.cpp
ourceManager.cpp
0d4739abf60372abdbafabd8ed59acc5d01729b5 24-Nov-2010 Francois Pichet <pichet2000@gmail.com> Fix 2 problems with Chris Lattner's FileManager redesign on Windows.

- FileEntry::operator= is needed on Win32.
- There was an error in the S_ISDIR() macro.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120079 91177308-0d34-0410-b5e6-96231b3b80d8
ileSystemStatCache.cpp
5cc1c738b0c51af55cbfe7672c284c19f8e30eb2 23-Nov-2010 Chris Lattner <sabre@nondot.org> The final result of all this refactoring: instead of doing stat immediately
followed by an open for every source file we open, probe the file system with
'open' and then do an fstat when it succeeds. open+fstat is faster than
stat+open because the kernel only has to perform the string->inode mapping
once. Presumably it gets faster the deeper in your filesystem a lookup
happens.

For -Eonly on cocoa.h, this reduces system time from 0.042s to 0.039s on
my machine, a 7.7% speedup.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120066 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
ileSystemStatCache.cpp
b2b93c12d768cfdeb21909f734b04ccb82d75da2 23-Nov-2010 Chris Lattner <sabre@nondot.org> if we succeed in opening a directory but expected a file, ensure we don't
leak a filedescriptor if a client ever starts returning one.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120062 91177308-0d34-0410-b5e6-96231b3b80d8
ileSystemStatCache.cpp
291fcf02980be85cf13c8a63bb036a19012311df 23-Nov-2010 Chris Lattner <sabre@nondot.org> hopefully resolve the windows buildbot issue (retch)


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120061 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
898a061f69e1145bf89a987c08203132b9922a3c 23-Nov-2010 Chris Lattner <sabre@nondot.org> change the 'is directory' indicator to be a null-or-not
pointer that is passed down through the APIs, and make
FileSystemStatCache::get be the one that filters out
directory lookups that hit files. This also paves the
way to have stat queries be able to return opened files.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120060 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
ileSystemStatCache.cpp
f9f7766846a205bc900b578f944567e679b221aa 23-Nov-2010 Chris Lattner <sabre@nondot.org> pull "is directory" handling into FileManager::getStatValue
which simplifies clients and is important for future directions.
Add a FD member to FileEntry which isn't used but will be shortly.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120056 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
f3e8a9961d000fb9e093593b6a1bf72313b90d06 23-Nov-2010 Chris Lattner <sabre@nondot.org> tidy up code, add a comment about dir caching.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120048 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
72f6130a17742e9c9078b4b60ad8f7ac2c690a3b 23-Nov-2010 Chris Lattner <sabre@nondot.org> replicate a terrible hack to fix a build error on VC++


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120039 91177308-0d34-0410-b5e6-96231b3b80d8
ileSystemStatCache.cpp
d6f611198089b78e32d3a15fe8bc986204aee1aa 23-Nov-2010 Chris Lattner <sabre@nondot.org> simplify the cache miss handling code, eliminating CacheMissing.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120038 91177308-0d34-0410-b5e6-96231b3b80d8
ileSystemStatCache.cpp
11aa4b03b054cb9d3c201bba5632241145865e29 23-Nov-2010 Chris Lattner <sabre@nondot.org> factor the "cache miss" handling code out of FM into a static
method in FileSystemStatCache.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120037 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
f8f6129861f3972dab2c5a6cde29711ac780a7d0 23-Nov-2010 Chris Lattner <sabre@nondot.org> r120013 dropped passing in the precomputed file size to
MemoryBuffer::getFile, causing us to pick up a fstat for
every file. Restore the optimization.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120032 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
ileSystemStatCache.cpp
74e976ba4b0d407bb798ea26476f618e256fc8c7 23-Nov-2010 Chris Lattner <sabre@nondot.org> PCH files only cache successful stats. Remove the code that reads/writes
the result code of the stat to/from the PCH file since it is always 0.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120031 91177308-0d34-0410-b5e6-96231b3b80d8
ileSystemStatCache.cpp
10e286aa8d39fb51a21412850265d9dae74613ee 23-Nov-2010 Chris Lattner <sabre@nondot.org> rework the stat cache, pulling it out of FileManager.h into
its own header and giving it some more structure. No
functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120030 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
ileManager.cpp
ileSystemStatCache.cpp
75dfb65c38d51772df9a00ce2d2feeefd55667ad 23-Nov-2010 Chris Lattner <sabre@nondot.org> tidy up. Split FileManager::getBufferForFile into
two copies, since they are fundamentally different
operations and the StringRef one should go away
(it shouldn't be part of FileManager at least).

Remove some dead arguments.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120013 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
b088cd3138b1fdb286c51e982ddda1e8af9d7e86 23-Nov-2010 Chris Lattner <sabre@nondot.org> reduce indentation and use early outs, to make it easier to read
this code. no functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120011 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
39b49bcaaddb1049234fca9500c0ac02c088e23d 23-Nov-2010 Chris Lattner <sabre@nondot.org> now the FileManager has a FileSystemOpts ivar, stop threading
FileSystemOpts through a ton of apis, simplifying a lot of code.
This also fixes a latent bug in ASTUnit where it would invoke
methods on FileManager without creating one in some code paths
in cindextext.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120010 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
ourceManager.cpp
7ad97ffa631af6ad678c79b38341ac995f347ce9 23-Nov-2010 Chris Lattner <sabre@nondot.org> give FileManager a 'FileSystemOptions' ivar, which will be used
to simplify a bunch of code in it. It should ultimately get inlined
into FileManager.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120007 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
151466a18671df9cfd9abd59ba53df35b1d687da 23-Nov-2010 Chris Lattner <sabre@nondot.org> Partially revert Doug's PCH validation patch (r98585).

This patch completely defeated the "passing in a prestat'd size
to MemoryBuffer" optimization, leading to an extra fstat call for
every buffer opened, in order to find out if the datestamp and size
of the file on disk matches what is in the stat cache.

I fully admit that I don't completely understand what is going on here:
why punish code when a stat cache isn't in use? what is the point of a
stat cache if you have to turn around and stat stuff to validate it?

To resolve both these issues, just drop the modtime check and check the
file size, which is the important thing anyway. This should also resolve
PR6812, because presumably windows is stable when it comes to file sizes.
If the modtime is actually important, we should get it and keep it on the
first stat.

This eliminates 833 fstat syscalls when processing Cocoa.h, speeding up
system time on -Eonly Cocoa.h from 0.041 to 0.038s.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120001 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
ourceManager.cpp
67452f51aec1ad8a3e4c6622c0c57c5d8dc1b6a3 23-Nov-2010 Chris Lattner <sabre@nondot.org> stringref'ize API


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119997 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
efc4be242b8c8f076ad4addd3598c4853ec50ac7 23-Nov-2010 Chris Lattner <sabre@nondot.org> avoid creating sys::Path instances when -fworking-directory isn't being used.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119995 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
aa8b2d95bc108e8f3a443e4a936e1ed8a3cc1cc6 21-Nov-2010 Benjamin Kramer <benny.kra@googlemail.com> Filename.rfind("/\\") won't give us the position of the last directory seperator.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119939 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
f69a1f319bd3c846c4a9ab84ea615e4e37dfd359 21-Nov-2010 Chris Lattner <sabre@nondot.org> change the various getFile routines to use StringRef as their implementation form.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119934 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
a6a32e295379570b489cc041053d2cd53bcafd1c 19-Nov-2010 Benjamin Kramer <benny.kra@googlemail.com> Initialize StoredDiagnostic's members in order.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119808 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
aa5f135f8db82b5e5fb1640fd51f8078e0b2d82d 19-Nov-2010 Douglas Gregor <dgregor@apple.com> Extend the libclang diagnostic API to provide information about the
option name, category ID, and category name corresponding to a diagnostic.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119802 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
3bbe0b033ea1dd9fcfbe60d9d358e777f2935b8f 18-Nov-2010 Benjamin Kramer <benny.kra@googlemail.com> Update CMake build.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119741 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
f2224d89a6ae65a3839529e26d0f6d025d83d6bb 18-Nov-2010 Argyrios Kyrtzidis <akyrtzi@gmail.com> Since multiple diagnostics can share one diagnostic client, have the client keeping track
of the total number of warnings/errors reported.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119731 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
33e4e70c8c0a17e0ccb7465d96556b077a68ecb1 18-Nov-2010 Argyrios Kyrtzidis <akyrtzi@gmail.com> Refactoring of Diagnostic class.

-Move the stuff of Diagnostic related to creating/querying diagnostic IDs into a new DiagnosticIDs class.
-DiagnosticIDs can be shared among multiple Diagnostics for multiple translation units.
-The rest of the state in Diagnostic object is considered related and tied to one translation unit.
-Have Diagnostic point to the SourceManager that is related with. Diagnostic can now accept just a
SourceLocation instead of a FullSourceLoc.
-Reflect the changes to various interfaces.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119730 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
iagnosticIDs.cpp
ourceManager.cpp
5807d9cce3f0ab4366bed9470355433c7b562c8d 18-Nov-2010 Benjamin Kramer <benny.kra@googlemail.com> Fix a typo in the UTF-8 BOM (PR8645). Use a StringSwitch while at it.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119698 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
70eddbfa09174de7d44b6a5cf7ecd55c4b97bee0 12-Nov-2010 Douglas Gregor <doug.gregor@gmail.com> Make sure to always check the result of
SourceManager::getPresumedLoc(), so that we don't try to make use of
an invalid presumed location. Doing so can cause crashes.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118885 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
cb7b1e17b63967317ab5cc55682168cf0380519a 12-Nov-2010 Douglas Gregor <dgregor@apple.com> Make sure to always check the result of
SourceManager::getPresumedLoc(), so that we don't try to make use of
an invalid presumed location. Doing so can cause crashes.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118885 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
584a4569f982e79db3f936429eda918be30a5675 09-Nov-2010 Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Add support for soft/hard float options to the Sparc target



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118514 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
9284d215022457ba867080a713f08f026d89ea17 09-Nov-2010 Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Add support for soft/hard float options to the Sparc target



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118514 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
a7bdfdd3b9d77383ec221dd48a169d088f88e81c 09-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Include System/DataTypes.h in Diagnostic.h to get intptr_t.
Set Haiku's UserLabelPrefix to "".
Patch by Paul Davey.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118510 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
19ddda83f9c3a7f1029740047b06035bda5fbb81 09-Nov-2010 Rafael Espindola <rafael.espindola@gmail.com> Include System/DataTypes.h in Diagnostic.h to get intptr_t.
Set Haiku's UserLabelPrefix to "".
Patch by Paul Davey.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118510 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
6dbcbbcfcdcc44c8f7641dc788d2523cf1a09b5b 03-Nov-2010 Argiris Kirtzidis <akyrtzi@gmail.com> Implement -working-directory.

When -working-directory is passed in command line, file paths are resolved relative to the specified directory.
This helps both when using libclang (where we can't require the user to actually change the working directory)
and to help reproduce test cases when the reproduction work comes along.

--FileSystemOptions is introduced which controls how file system operations are performed (currently it just contains
the working directory value if set).
--FileSystemOptions are passed around to various interfaces that perform file operations.
--Opening & reading the content of files should be done only through FileManager. This is useful in general since
file operations will be abstracted in the future for the reproduction mechanism.

FileSystemOptions is independent of FileManager so that we can have multiple translation units sharing the same
FileManager but with different FileSystemOptions.

Addresses rdar://8583824.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118203 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
ourceManager.cpp
389db16c63eec6ecfa9b235155252d8da766e94e 03-Nov-2010 Argyrios Kyrtzidis <akyrtzi@gmail.com> Implement -working-directory.

When -working-directory is passed in command line, file paths are resolved relative to the specified directory.
This helps both when using libclang (where we can't require the user to actually change the working directory)
and to help reproduce test cases when the reproduction work comes along.

--FileSystemOptions is introduced which controls how file system operations are performed (currently it just contains
the working directory value if set).
--FileSystemOptions are passed around to various interfaces that perform file operations.
--Opening & reading the content of files should be done only through FileManager. This is useful in general since
file operations will be abstracted in the future for the reproduction mechanism.

FileSystemOptions is independent of FileManager so that we can have multiple translation units sharing the same
FileManager but with different FileSystemOptions.

Addresses rdar://8583824.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118203 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
ourceManager.cpp
6ce1428d71592a4fa8a8dbbdc38528142de4825a 03-Nov-2010 Anders Carlsson <andersca@mac.com> When setting a tied check if it's already tied. If it's tied to another constraint it's invalid. Fixes PR3905.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118146 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
79ca1ee4b637c01458584bb571f1b309180c780d 03-Nov-2010 Anders Carlsson <andersca@mac.com> When setting a tied check if it's already tied. If it's tied to another constraint it's invalid. Fixes PR3905.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118146 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
e02cd8f520f615573ec00d6e10880127c89465c8 03-Nov-2010 Anders Carlsson <andersca@mac.com> A number in an input constraint can't point to a read-write ('+') constraint. Fixes PR3904.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118145 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
86eda39c8af47280273758debf0432933bdeee3c 03-Nov-2010 Anders Carlsson <andersca@mac.com> A number in an input constraint can't point to a read-write ('+') constraint. Fixes PR3904.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118145 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
4e2ba30488b90b830998ace0eb27ed3b2384aded 02-Nov-2010 Douglas Gregor <doug.gregor@gmail.com> Teach SourceManager::getPresumedLoc() how to fail gracefully if getLineNumber/getColumnNumber fail

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117990 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
c417fa024495c10a5e678ea36a5f8c715528bdd1 02-Nov-2010 Douglas Gregor <dgregor@apple.com> Teach SourceManager::getPresumedLoc() how to fail gracefully if getLineNumber/getColumnNumber fail

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117990 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
80209e6370362654179ee9aba339ec903a5ba789 30-Oct-2010 Chris Lattner <sabre@nondot.org> Rename alignof -> alignOf to avoid irritating C++'0x compilers,
PR8423


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117775 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
3248854a5d16e1de17c58e05f726bdef9f042df2 30-Oct-2010 Chris Lattner <sabre@nondot.org> Rename alignof -> alignOf to avoid irritating C++'0x compilers,
PR8423


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117775 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
8fa024cad01e38f1b16477c838ad7400ea1b1756 30-Oct-2010 Dale Johannesen <dalej@apple.com> Handle Type.h a better way.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117743 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1e592cba6bc1930e7a01dde8370e5345cef05723 30-Oct-2010 Dale Johannesen <dalej@apple.com> Handle Type.h a better way.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117743 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
3a161e5ca07ca0c35ad2b0f73e21ed3b1ea43171 30-Oct-2010 Dale Johannesen <dalej@apple.com> Generate bitcasts going in and out of MMX parameters
in asm's. PR 8501, 8602988.
I don't like including Type.h where it is; the idea was
to get references to X86_MMXTy out of the common code.
Maybe there's a better way?



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117736 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f6e2c2039f76fa58799f6d155892d54fc95755e1 30-Oct-2010 Dale Johannesen <dalej@apple.com> Generate bitcasts going in and out of MMX parameters
in asm's. PR 8501, 8602988.
I don't like including Type.h where it is; the idea was
to get references to X86_MMXTy out of the common code.
Maybe there's a better way?



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117736 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
0d79b04d53ce38692d8f12a2eb693edcb7593014 28-Oct-2010 Dale Johannesen <dalej@apple.com> Ahem. Add rest of D and Q registers to ARM inline asm handling.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117517 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
d14553554654a5dd8839159c42b94938c1122b00 28-Oct-2010 Dale Johannesen <dalej@apple.com> Ahem. Add rest of D and Q registers to ARM inline asm handling.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117517 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
0bbb50d9e5f3a711d1fd0f189971770615dc13d7 28-Oct-2010 Dale Johannesen <dalej@apple.com> Add D and Q register names to ARM inline asm handling.
No aliasing is needed, these work as given in the BE.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117508 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
20eb49b50395fdf54022517abb3fbb31fffe54e7 28-Oct-2010 Dale Johannesen <dalej@apple.com> Add D and Q register names to ARM inline asm handling.
No aliasing is needed, these work as given in the BE.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117508 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1ee1609094e240771c62e9d6b85103f37b7a6270 26-Oct-2010 Dan Gohman <gohman@apple.com> getOrCreateContentCache never returns null, so overrideFileContents
doesn't need its return value.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117393 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
0d06e998910934e5ef070f53f4c272e7c6b846c6 26-Oct-2010 Dan Gohman <gohman@apple.com> getOrCreateContentCache never returns null, so overrideFileContents
doesn't need its return value.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117393 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
2d92fd674ed223d3a9442968b15480518f459c61 23-Oct-2010 Chandler Carruth <chandlerc@gmail.com> Update remaining attribute macros to new style.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117204 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
14bd96571ef6f0e97dc79ec4d01b547d60e8fa68 23-Oct-2010 Chandler Carruth <chandlerc@gmail.com> Update remaining attribute macros to new style.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117204 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
a49254ea13f795120b78c810f98e5977bdafc9b0 22-Oct-2010 Dale Johannesen <dalej@apple.com> Change handling of inline asm 'p' constraint to match llvm-gcc.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117149 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
cee55018570c0c46262c6e4ef7beaa707c93fc86 22-Oct-2010 Dale Johannesen <dalej@apple.com> Change handling of inline asm 'p' constraint to match llvm-gcc.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117149 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
43ee87d5885551ea31cca085e1a287d3f0480500 22-Oct-2010 Oscar Fuentes <ofv@wanadoo.es> Don't try to guess svn version when current path is a symlink.

See PR 8473.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117110 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
8523d81f3ed13914cafa953233b79cdd8a3eb75c 22-Oct-2010 Oscar Fuentes <ofv@wanadoo.es> Don't try to guess svn version when current path is a symlink.

See PR 8473.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117110 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
04a9a351ba44b12c715291e1d617268bc0e3415b 21-Oct-2010 Francois Pichet <pichet2000@gmail.com> Revert r117005, WIN32 is not predefined after all.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117026 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
4f74d021d044fb9a3ef8cfd047c108ba7887abfe 21-Oct-2010 Francois Pichet <pichet2000@gmail.com> Revert r117005, WIN32 is not predefined after all.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117026 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
a07c7da88592f070d25104fe8f7ea992b91c704f 21-Oct-2010 Francois Pichet <pichet2000@gmail.com> MSVC defines WIN32 as a predefined macro.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117005 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1a6f72df4b29544b10b3068504301e01d41d52da 21-Oct-2010 Francois Pichet <pichet2000@gmail.com> MSVC defines WIN32 as a predefined macro.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117005 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
4fb461c1067d96f27d6b2b163ec210e35c11dc41 21-Oct-2010 Michael J. Spencer <bigcheesegs@gmail.com> Targets: Fix MinGW and VisualStudio predefined macros.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117003 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
a764e8395a8d99ff534bb74ee302a58fa7d93137 21-Oct-2010 Michael J. Spencer <bigcheesegs@gmail.com> Targets: Fix MinGW and VisualStudio predefined macros.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117003 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
01e70084f5d9ddfbb09dcecb498ddce71a5c70ae 21-Oct-2010 Michael J. Spencer <bigcheesegs@gmail.com> Reorganize predefined macros for all Windows targets.

This adds an option to set the _MSC_VER macro without
recompiling. This is very useful when testing compatibility
with the Windows SDK and c++stdlib headers.

-fmsc-version=<version> (defaults to VS2003 (1300))

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116999 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
dae4ac4fe56ec60fc93b3e3c9f51e79e682084b9 21-Oct-2010 Michael J. Spencer <bigcheesegs@gmail.com> Reorganize predefined macros for all Windows targets.

This adds an option to set the _MSC_VER macro without
recompiling. This is very useful when testing compatibility
with the Windows SDK and c++stdlib headers.

-fmsc-version=<version> (defaults to VS2003 (1300))

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116999 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
d5513a31553eeb274a7dd16500a01a440297e7a5 21-Oct-2010 Michael J. Spencer <bigcheesegs@gmail.com> Fix Whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116990 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
20249a1af2e462dcafdd6a350f1c7967b264ff25 21-Oct-2010 Michael J. Spencer <bigcheesegs@gmail.com> Fix Whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116990 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
9b94a32029ae0d5c00a37e45f480b20a1794c0c7 21-Oct-2010 Michael J. Spencer <bigcheesegs@gmail.com> Revert "Cleanup and fix predefined macros for windows."

Didn't realize this was on my branch ;/.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116989 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
542ad38e2b5088c90786cb0d209a2f568aa64f3c 21-Oct-2010 Michael J. Spencer <bigcheesegs@gmail.com> Revert "Cleanup and fix predefined macros for windows."

Didn't realize this was on my branch ;/.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116989 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
636e26e0f3c6aa352104864d3cc245789957dca2 21-Oct-2010 Michael J. Spencer <bigcheesegs@gmail.com> Cleanup and fix predefined macros for windows.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116988 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
712392e4deb5b14e04047bdaab799b82c5bed37c 21-Oct-2010 Michael J. Spencer <bigcheesegs@gmail.com> Cleanup and fix predefined macros for windows.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116988 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
567af7d4376f75158061fec10a3cb8597ad0098a 18-Oct-2010 Michael J. Spencer <bigcheesegs@gmail.com> CodeGen: Fix long double on Windows using MSVC runtime.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116700 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
e2ef189b05bcd258a18bf4b87039694c1b93fd2c 18-Oct-2010 Michael J. Spencer <bigcheesegs@gmail.com> CodeGen: Fix long double on Windows using MSVC runtime.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116700 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
3d796930a1057d682dd5f9b719f9f1a42c0d1377 18-Oct-2010 Michael J. Spencer <bigcheesegs@gmail.com> Fix Whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116699 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
237cf582b89bbcc22640cea15426ddc7ada8412b 18-Oct-2010 Michael J. Spencer <bigcheesegs@gmail.com> Fix Whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116699 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
b9d1dba5986d9b5cd4e1a5ff93759b3704593829 15-Oct-2010 Douglas Gregor <doug.gregor@gmail.com> When performing typo correction, look through the set of known
identifiers to determine good typo-correction candidates. Once we've
identified those candidates, we perform name lookup on each of them
and the consider the results.

This optimization makes typo correction > 2x faster on a benchmark
example using a single typo (NSstring) in a tiny file that includes
Cocoa.h from a precompiled header, since we are deserializing far less
information now during typo correction.

There is a semantic change here, which is interesting. The presence of
a similarly-named entity that is not visible can now affect typo
correction. This is both good (you won't get weird corrections if the
thing you wanted isn't in scope) and bad (you won't get good
corrections if there is a similarly-named-but-completely-unrelated
thing). Time will tell whether it was a good choice or not.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116528 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
95f4292cc526c629fead321c7fcfd4fe0f3bc66e 15-Oct-2010 Douglas Gregor <dgregor@apple.com> When performing typo correction, look through the set of known
identifiers to determine good typo-correction candidates. Once we've
identified those candidates, we perform name lookup on each of them
and the consider the results.

This optimization makes typo correction > 2x faster on a benchmark
example using a single typo (NSstring) in a tiny file that includes
Cocoa.h from a precompiled header, since we are deserializing far less
information now during typo correction.

There is a semantic change here, which is interesting. The presence of
a similarly-named entity that is not visible can now affect typo
correction. This is both good (you won't get weird corrections if the
thing you wanted isn't in scope) and bad (you won't get good
corrections if there is a similarly-named-but-completely-unrelated
thing). Time will tell whether it was a good choice or not.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116528 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
9b08d4ae1ff341bdc13ddc4653fa04f8e2ac7522 14-Oct-2010 John McCall <rjmccall@apple.com> Teach Diagnostic to recursively expand inside %plural formats.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116468 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
e53a44bcd342e964a3c69bc27734f01e23f5fec8 14-Oct-2010 John McCall <rjmccall@apple.com> Teach Diagnostic to recursively expand inside %plural formats.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116468 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
581d2676f51f135e8a5c259cf3552f65cf321163 13-Oct-2010 Douglas Gregor <doug.gregor@gmail.com> _Bool is not a keyword in C++. Fixes PR7388 and PR8349.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116422 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
3a43d8df596a0af13379c3d2a78e2f7e7b156f30 13-Oct-2010 Douglas Gregor <dgregor@apple.com> _Bool is not a keyword in C++. Fixes PR7388 and PR8349.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116422 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
7ad91b430acfc5360cf8dad23763b69f25855ff9 13-Oct-2010 Douglas Gregor <doug.gregor@gmail.com> Fix a silly bug in the suppression of non-error diagnostics in a
SFINAE context, where we weren't getting the right diagnostic argument
count. I blame DiagnosticBuilder's weirdness. Fixes PR8372.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116411 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
b535041ee33c5eff255832bc5541c8d52aae8254 13-Oct-2010 Douglas Gregor <dgregor@apple.com> Fix a silly bug in the suppression of non-error diagnostics in a
SFINAE context, where we weren't getting the right diagnostic argument
count. I blame DiagnosticBuilder's weirdness. Fixes PR8372.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116411 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
a096552e357c5dc9ac92d7077346599c4753af4e 12-Oct-2010 Daniel Dunbar <daniel@zuster.org> Basic: Tweak attempt to make version tags work from 'svn export's again, clip
off the extra parts of the $URL$ SVN keyword.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116269 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
83e18f806087436cb99ad2d044dff04d59d5dd05 12-Oct-2010 Daniel Dunbar <daniel@zuster.org> Basic: Tweak attempt to make version tags work from 'svn export's again, clip
off the extra parts of the $URL$ SVN keyword.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116269 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
4d384e903f4b006cf0e2dc0b48b095bbff9311be 12-Oct-2010 Daniel Dunbar <daniel@zuster.org> Basic: Attempt to make version tags work from 'svn export's again.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116268 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
7171f2aaf9797b0f2334efc37ea6f69592fb157c 12-Oct-2010 Daniel Dunbar <daniel@zuster.org> Basic: Attempt to make version tags work from 'svn export's again.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116268 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
4b8b94dd61d94ab477667c57b4e5222a09336f08 12-Oct-2010 Douglas Gregor <doug.gregor@gmail.com> Eliminate -fdiagnostics-binary and all of the infrastructure for
emitting diagnostics in a binary form to be consumed by libclang,
since libclang no longer does any of its work out-of-process, making
this code dead. Besides, this stuff never worked at 100% anyway.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116250 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
d3ab63e0f66429abf2a3e4cde889e420e41e8790 12-Oct-2010 Douglas Gregor <dgregor@apple.com> Eliminate -fdiagnostics-binary and all of the infrastructure for
emitting diagnostics in a binary form to be consumed by libclang,
since libclang no longer does any of its work out-of-process, making
this code dead. Besides, this stuff never worked at 100% anyway.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116250 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
2473b4b5e19eb58080b3986062ef941b97c33039 11-Oct-2010 Chris Lattner <sabre@nondot.org> Per discussion with Sanjiv, remove the PIC16 target from mainline. When/if
it comes back, it will be largely a rewrite, so keeping the old codebase
in tree isn't helping anyone.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116191 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
757e685512b8616c9de918b3d3fad8247562dce2 11-Oct-2010 Chris Lattner <sabre@nondot.org> Per discussion with Sanjiv, remove the PIC16 target from mainline. When/if
it comes back, it will be largely a rewrite, so keeping the old codebase
in tree isn't helping anyone.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116191 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
94f41228b08fa888a823bcc45adce89ccaf7c6b0 07-Oct-2010 Daniel Dunbar <daniel@zuster.org> Driver: When clang is built with a VENDOR set, include the base LLVM version in
the version information, to help prevent user confusion about vendor version
numbers vs. LLVM version numbers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115915 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
ddb6c8df46931374df0a57a534aabcaa3becb6aa 07-Oct-2010 Daniel Dunbar <daniel@zuster.org> Driver: When clang is built with a VENDOR set, include the base LLVM version in
the version information, to help prevent user confusion about vendor version
numbers vs. LLVM version numbers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115915 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
f82728cb95cead54f1bf8c0ccf7d5ebe72c22848 07-Oct-2010 Stephen Hines <srhines@google.com> Use 64-bit "long" for RenderScript ARM targets.

Change-Id: I39b3a978740239f2331f20eb7a1ae152ff2ae163
argets.cpp
b0406ccde76ee9b4f8601a693f4cd49388873a73 06-Oct-2010 Stephen Hines <srhines@google.com> Add LOCAL_MODULE_TAGS to clang Android.mk files.

Change-Id: Iba0dd9023388948d2c3fcb3522cea5d5d9a264a7
ndroid.mk
8e41e67059d877a9c27ff6bb0565576c94784533 05-Oct-2010 Zhanyong Wan <wan@google.com> Fix handling of the 'Invalid' argument in SourceManager's methods (patch by Dean Sturtevant, reviewed by chandlerc and Sebastian Redl).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115638 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
1f24e11769016e84ebf86ac5d97d43a7ce5dd5c1 05-Oct-2010 Zhanyong Wan <wan@google.com> Fix handling of the 'Invalid' argument in SourceManager's methods (patch by Dean Sturtevant, reviewed by chandlerc and Sebastian Redl).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115638 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
129d24edef6c3a5e873bdf4c4def760f97426549 29-Sep-2010 Daniel Dunbar <daniel@zuster.org> Basic: Simplify getClangRepositoryPath and getClangRevision.

- I don't like returning StringRef's ever, unless it is actually important for
performance, which it isn't here.

- Also, stop validating getClangRevision to be an integer, I don't see a good
reason to do this.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115071 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
ersion.cpp
16a8fb7e9dd4a0347f7ed676e2d9bd254e1ea5b0 29-Sep-2010 Daniel Dunbar <daniel@zuster.org> Basic: Simplify getClangRepositoryPath and getClangRevision.

- I don't like returning StringRef's ever, unless it is actually important for
performance, which it isn't here.

- Also, stop validating getClangRevision to be an integer, I don't see a good
reason to do this.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115071 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
ersion.cpp
4044c38752efedec8ecd749b059b693c894a39e2 29-Sep-2010 Daniel Dunbar <daniel@zuster.org> Basic: Add support for git svn to get the repo version in clang executable,
patch by Jonathan Mulder!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115049 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
ersion.cpp
640cf37c9432031412a9d3b8c2abcdff4f7f0e97 29-Sep-2010 Daniel Dunbar <daniel@zuster.org> Basic: Add support for git svn to get the repo version in clang executable,
patch by Jonathan Mulder!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115049 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
ersion.cpp
b5275017c73a46e5ca9fd4e3c6c90e12bb3e5463 22-Sep-2010 John Thompson <john.thompson.jtsoftware@gmail.com> Fixed pr20314-2.c failure, added E, F, p constraint letters.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114490 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
7ccc58f9ffa0d2cad6fcf00b66c0fc0d2fae26e6 22-Sep-2010 John Thompson <John.Thompson.JTSoftware@gmail.com> Fixed pr20314-2.c failure, added E, F, p constraint letters.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114490 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
f3795b338ddcd51721955e29ae3e2efd7f00c4c4 18-Sep-2010 John Thompson <john.thompson.jtsoftware@gmail.com> Added '|' delimiter to separate inline asm multiple alternative constraints for Clang side of support.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114253 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
2f474ea9ef7505df5d092287c48c19974222293b 18-Sep-2010 John Thompson <John.Thompson.JTSoftware@gmail.com> Added '|' delimiter to separate inline asm multiple alternative constraints for Clang side of support.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114253 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
32083823fb50672a0df6b5e9a4dc728f4bc7e381 15-Sep-2010 Cameron Esfahani <dirty@apple.com> Fix Windows64 target info so pointer arithmetic is done correctly, and no sign extension code is emitted: PtrDiffType needs to be a signed long long. Add a corresponding test case.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113910 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1484e0da648e1aa3a68f7114bb771a6ca57f5316 15-Sep-2010 Cameron Esfahani <dirty@apple.com> Fix Windows64 target info so pointer arithmetic is done correctly, and no sign extension code is emitted: PtrDiffType needs to be a signed long long. Add a corresponding test case.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113910 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
3049ec9961d1a1f0570a24dc601e6a362129b35d 10-Sep-2010 Shih-wei Liao <sliao@google.com> Merge changes from upstream repository (r112367)

Change-Id: Ib88c8fd890e7c8c5597ea2b86cfa934438965c08
fe0fb28bcfc69003c77765352186302b6ba30a90 14-Sep-2010 Michael J. Spencer <bigcheesegs@gmail.com> Revert "CMake: Update to use standard CMake dependency tracking facilities instead"

This reverts commit r113631

Conflicts:

CMakeLists.txt
lib/CodeGen/CMakeLists.txt

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113817 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
560a921b85773ac7c2d1a7a4aec4682c822c5cb4 14-Sep-2010 Michael J. Spencer <bigcheesegs@gmail.com> Revert "CMake: Update to use standard CMake dependency tracking facilities instead"

This reverts commit r113631

Conflicts:

CMakeLists.txt
lib/CodeGen/CMakeLists.txt

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113817 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
42591fac8f92efab995608d36060579a9b688d66 10-Sep-2010 Michael J. Spencer <bigcheesegs@gmail.com> CMake: Update to use standard CMake dependency tracking facilities instead
of whatever we were using before...

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113631 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
5a7f34958ca6f2fa8a52e9921cf521cbb92ae070 10-Sep-2010 Michael J. Spencer <bigcheesegs@gmail.com> CMake: Update to use standard CMake dependency tracking facilities instead
of whatever we were using before...

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113631 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
203b52e0ff062240baa0b0f5d288ff48bccfd809 09-Sep-2010 Shih-wei Liao <sliao@google.com> Remove extra URL string definition to match upstream r102409 first, before 3-way merge to r112367.
By the way, so far in 2010 we only sync upstream r95781 and r102409. From now on, will do frequent syncs.

Change-Id: I41305eb552f904d36f0e509f942d42660bfd7e44
ersion.cpp
ff78c1e870435d1a67e8563d43075716f0896c11 07-Sep-2010 Dale Johannesen <dalej@apple.com> Allow 'o' and 'V' as constraints for output asm operands.
Allow '<' and '>' as constraints for input or output.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113246 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
0f048a44b5280f5fae28b9363ed4eab618bb1083 07-Sep-2010 Dale Johannesen <dalej@apple.com> Allow 'o' and 'V' as constraints for output asm operands.
Allow '<' and '>' as constraints for input or output.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113246 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
23cf1f9d0f258b16fb5c07a14ceb7aba4562903e 03-Sep-2010 Dawn Perchik <dawn@burble.org> Add symantic support for the Pascal calling convention via
"__attribute((pascal))" or "__pascal" (and "_pascal" under
-fborland-extensions). Support still needs to be added to llvm.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112939 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
52fc314e1b5e1baee6305067cf831763d02bd243 03-Sep-2010 Dawn Perchik <dawn@burble.org> Add symantic support for the Pascal calling convention via
"__attribute((pascal))" or "__pascal" (and "_pascal" under
-fborland-extensions). Support still needs to be added to llvm.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112939 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
b979e7a58d8bf64a7353ae158a7a01bbdb25d6fc 31-Aug-2010 Chris Lattner <sabre@nondot.org> Add support for windows x86-64 varargs, patch by Cameron Esfahani!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112603 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f13721dd91dda7675e499331a2770308ad20ca61 31-Aug-2010 Chris Lattner <sabre@nondot.org> Add support for windows x86-64 varargs, patch by Cameron Esfahani!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112603 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
c7f867d31de0c8c9b4da8e3f09a6a401d9dc318a 26-Aug-2010 Dan Gohman <gohman@apple.com> Fix a typo.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112219 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
3f86b789f5b98731937f90b3941104a313766953 26-Aug-2010 Dan Gohman <gohman@apple.com> Fix a typo.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112219 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
eba819ac072cf928f45587520f4fc78769627b9c 25-Aug-2010 Dale Johannesen <dalej@apple.com> Add some missing X86-specific asm constraint letters, and fix
some bugs in setting allowsRegister on the ones there.
8348447.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111980 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
545be51fdfbd243b9ee98177a80397504327a687 25-Aug-2010 Dale Johannesen <dalej@apple.com> Add some missing X86-specific asm constraint letters, and fix
some bugs in setting allowsRegister on the ones there.
8348447.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111980 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
69239fb5296186af95cb0acc2cc174f6644b3a72 24-Aug-2010 Chris Lattner <sabre@nondot.org> fix PR7953 - Windows filename are case insensitive:

#pragma once wasn't working on win32 if the header file was included
using a different case.
I tracked down the problem to the fact that clang::FileManager was
caching files using case sensitive string (UniqueFiles) on Windows.

I changed FileManager to cache filename in lower case only.
Doesn't affect UNIX because UNIX uses Inode to uniquely identify files.

unix doesn't use this codepath.

Analysis and patch by Francois Pichet!



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111866 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
c070da46b896940aa2cbac416e5a2f8eee22d7d8 24-Aug-2010 Chris Lattner <sabre@nondot.org> fix PR7953 - Windows filename are case insensitive:

#pragma once wasn't working on win32 if the header file was included
using a different case.
I tracked down the problem to the fact that clang::FileManager was
caching files using case sensitive string (UniqueFiles) on Windows.

I changed FileManager to cache filename in lower case only.
Doesn't affect UNIX because UNIX uses Inode to uniquely identify files.

unix doesn't use this codepath.

Analysis and patch by Francois Pichet!



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111866 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
08f845b775c7be1a417b1b20b445d47b5c72a1bb 22-Aug-2010 Eli Friedman <eli.friedman@gmail.com> Detabify.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111768 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
a7e6845660f91ec611427e1db842780e1ec12bdb 22-Aug-2010 Eli Friedman <eli.friedman@gmail.com> Detabify.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111768 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
68086b9ad26c471322449ea1c030c2ac8397fd07 22-Aug-2010 John McCall <rjmccall@apple.com> The ARM C++ ABI is sufficiently different from the Itanium C++ ABI that
it deserves its own enumerator. Obviously the implementations should
closely follow the Itanium ABI except in cases of divergence.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111749 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
ee79a4c30e5d1c5285551c9a25b8ec6d45d46aa7 22-Aug-2010 John McCall <rjmccall@apple.com> The ARM C++ ABI is sufficiently different from the Itanium C++ ABI that
it deserves its own enumerator. Obviously the implementations should
closely follow the Itanium ABI except in cases of divergence.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111749 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
94123d2d6164c19fe11d639459a054455f2ee887 20-Aug-2010 Ying Wang <wangying@google.com> Fix sim build.

Note that this only makes the sim build green, but the built images won't work for sure:
No libbcc.so, which depends on something else that can not build in sim mode.
No x86 bitcode is generated as well, I believe.

Change-Id: Idca8378427196622ac77cd56a38c6a160f03ba22
ndroid.mk
461310d47dfb77ed4b176cfa19358bddeb732a35 19-Aug-2010 Sebastian Redl <sebastian.redl@getdesigned.at> More PCH -> AST renaming.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111472 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
ourceManager.cpp
3c7f4134603d04b44f997b43c0a9def270f25386 19-Aug-2010 Sebastian Redl <sebastian.redl@getdesigned.at> More PCH -> AST renaming.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111472 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
ourceManager.cpp
cb6c24a9e86453b63863ce1eb8645e1690c9b542 18-Aug-2010 Douglas Gregor <doug.gregor@gmail.com> Simplify FixItHint by eliminated the unnecessary InsertionLoc
location. Patch by Eelis van der Weegen!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111362 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
783c56f47745f719590b17afd7ed937bf2407b53 18-Aug-2010 Douglas Gregor <dgregor@apple.com> Simplify FixItHint by eliminated the unnecessary InsertionLoc
location. Patch by Eelis van der Weegen!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111362 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
dab8fc87f04d93da5b973b548800d54c9b188002 18-Aug-2010 Chandler Carruth <chandlerc@gmail.com> Check whether errors should be included in the diagnostic counts. Previously,
only warnings did this check.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111355 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
7a5bf5fb01c676809efcf63de322a88819115652 18-Aug-2010 Chandler Carruth <chandlerc@gmail.com> Check whether errors should be included in the diagnostic counts. Previously,
only warnings did this check.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111355 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
097ce228a9a66f48b7e27874e0dc0db13b1b7872 18-Aug-2010 Sebastian Redl <sebastian.redl@getdesigned.at> Get rid of pretty non-ASCII quotes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111316 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
5005a6cf2e78be57c053d011ce9f95b40c8a5f5b 18-Aug-2010 Sebastian Redl <sebastian.redl@getdesigned.at> Get rid of pretty non-ASCII quotes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111316 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
42be80599fb039f3b7d383feff7a22e90ce1e33e 17-Aug-2010 Chris Lattner <sabre@nondot.org> apparently msvc defines _STDCALL_SUPPORTED, so we should
too. Patch by Per Linden!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111236 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
653f5812f754a1e91991f4901ec4e9145ae2be68 17-Aug-2010 Chris Lattner <sabre@nondot.org> apparently msvc defines _STDCALL_SUPPORTED, so we should
too. Patch by Per Linden!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111236 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
a256f5f41fbc9723df79ce52bf6c0855df786f06 15-Aug-2010 Argiris Kirtzidis <akyrtzi@gmail.com> Remove dead code, caught by unused function warnings.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111091 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
ba6f816d633e3b88c38c6896c2d78d19489650f2 15-Aug-2010 Argyrios Kyrtzidis <akyrtzi@gmail.com> Remove dead code, caught by unused function warnings.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111091 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
87e3107813ef5656e78dde72621ee2b0070c3c1c 12-Aug-2010 Eli Friedman <eli.friedman@gmail.com> Fix oversight with symbolic names in TargetInfo::validateInputConstraint.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110870 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
0eff4e73d58cf28458470beec31b33bcb302377c 12-Aug-2010 Eli Friedman <eli.friedman@gmail.com> Fix oversight with symbolic names in TargetInfo::validateInputConstraint.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110870 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
14f796cba920ce6012f5248a3f6e94b45579abd6 12-Aug-2010 Argiris Kirtzidis <akyrtzi@gmail.com> -Make TokenID of IdentifierInfo read-only, remove setTokenID().
-There are 2 instances that change the TokenID for GNU libstdc++ 4.2 compatibility.
To handler those cases introduce a RevertedTokenID bitfield, RevertTokenIDToIdentifier() and hasRevertedTokenIDToIdentifier() methods.
Store the bitfield in PCH.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110868 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
646395bbcaa849c94bc2a3246c71d809ca719f01 12-Aug-2010 Argyrios Kyrtzidis <akyrtzi@gmail.com> -Make TokenID of IdentifierInfo read-only, remove setTokenID().
-There are 2 instances that change the TokenID for GNU libstdc++ 4.2 compatibility.
To handler those cases introduce a RevertedTokenID bitfield, RevertTokenIDToIdentifier() and hasRevertedTokenIDToIdentifier() methods.
Store the bitfield in PCH.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110868 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
663e9f8d434923e97b5585eaeb140c37f841528b 11-Aug-2010 Daniel Dunbar <daniel@zuster.org> ARM: Recognize single precision float register names.
- We don't recognize double or NEON register names yet -- we don't have the
infrastructure to generate the right clobbers for them.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110775 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
bf3d55243a58bc8ffc80c1fc581275677e348760 11-Aug-2010 Daniel Dunbar <daniel@zuster.org> ARM: Recognize single precision float register names.
- We don't recognize double or NEON register names yet -- we don't have the
infrastructure to generate the right clobbers for them.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110775 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
00ea8f0d9fef2943790f3a48b5579792ebee2ed3 11-Aug-2010 Daniel Dunbar <daniel@zuster.org> ARM: Swap which registers we consider real / aliases to match LLVM and llvm-gcc.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110774 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1fd71718eee5f39f560f536f0ee9cf7c68876518 11-Aug-2010 Daniel Dunbar <daniel@zuster.org> ARM: Swap which registers we consider real / aliases to match LLVM and llvm-gcc.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110774 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
39216c26c7edb4f1eab11157772f63e0c7a27391 11-Aug-2010 John Thompson <john.thompson.jtsoftware@gmail.com> Fix for pr7869, inline asm mult-alt constraints.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110764 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
6f158034915a112d6082a6b238a56337d1528328 11-Aug-2010 John Thompson <John.Thompson.JTSoftware@gmail.com> Fix for pr7869, inline asm mult-alt constraints.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110764 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
b6e73d494139924080889ff90d6976f13693eca2 10-Aug-2010 John Thompson <john.thompson.jtsoftware@gmail.com> Slightly revised handling of mult-alt constraints, to avoid an assert, until we have the full fix.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110706 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
ef44e1110711276ffffe4b22d4ba0cebd49cb330 10-Aug-2010 John Thompson <John.Thompson.JTSoftware@gmail.com> Slightly revised handling of mult-alt constraints, to avoid an assert, until we have the full fix.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110706 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
05e6d2136a7c340ecf5d2120cbee8b2f231d7f7f 06-Aug-2010 Douglas Gregor <doug.gregor@gmail.com> Define _INTEGRAL_MAX_BITS for the win32 and win64 targets, from Per Lindén!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110442 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
72283806e717442536eef55941fd573d4b552393 06-Aug-2010 Douglas Gregor <dgregor@apple.com> Define _INTEGRAL_MAX_BITS for the win32 and win64 targets, from Per Lindén!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110442 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
866ff8ad29edb97cebce13dbb1b4acfb69b2830b 05-Aug-2010 Chris Lattner <sabre@nondot.org> fix the va_list definition for vc++64, patch by Cameron Esfahani!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110370 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
86e83730b5c1dd9d38b9c9317abbf691a617d63f 05-Aug-2010 Chris Lattner <sabre@nondot.org> fix the va_list definition for vc++64, patch by Cameron Esfahani!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110370 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
8a93f510715475e7b4eb66023ab9597c4c367188 05-Aug-2010 Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Add -mavx and -mno-avx command line support

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110265 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
7377ed985bb2a529d1abb4ebea88586e5d195d1b 05-Aug-2010 Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Add -mavx and -mno-avx command line support

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110265 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
31ce54e8a23d07a504c0df01cb1ece1079192e53 02-Aug-2010 Eli Friedman <eli.friedman@gmail.com> PR7777: Set EnabledByDefault to something useful, instead of setting it
randomly. This makes us consistently show "-pedantic" as the warning option
for a warning where appropriate.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109987 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
270c03550b311058d140d8c6a0257c553bc96241 02-Aug-2010 Eli Friedman <eli.friedman@gmail.com> PR7777: Set EnabledByDefault to something useful, instead of setting it
randomly. This makes us consistently show "-pedantic" as the warning option
for a warning where appropriate.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109987 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
6ccdbb83af9f43824191783b6842a9628f048e43 31-Jul-2010 Douglas Gregor <doug.gregor@gmail.com> Implement dependency analysis for the precompiled preamble. If any of
the files in the precompiled preamble have changed since it was build,
force the preamble to be rebuilt.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109937 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
cc5888d833caf90ebda37f24da40d2cd06b4d820 31-Jul-2010 Douglas Gregor <dgregor@apple.com> Implement dependency analysis for the precompiled preamble. If any of
the files in the precompiled preamble have changed since it was build,
force the preamble to be rebuilt.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109937 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
6227b1e56f35a4dae53d631d392a83ab8a75feef 30-Jul-2010 Sebastian Redl <sebastian.redl@getdesigned.at> Make macro weirdness in chained PCH work. This required changing the way PCHReader and PCHWriter are initialized to correctly pick up all initializer. On the upside, this means that there is far less repetition in the dependent PCH now.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109823 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
ffaab3e2bb13991bb3357e80f14bcae3745b2347 30-Jul-2010 Sebastian Redl <sebastian.redl@getdesigned.at> Make macro weirdness in chained PCH work. This required changing the way PCHReader and PCHWriter are initialized to correctly pick up all initializer. On the upside, this means that there is far less repetition in the dependent PCH now.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109823 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
3a5b11b140639d21e62f011da8ec6a15c125062c 28-Jul-2010 Sebastian Redl <sebastian.redl@getdesigned.at> Add a test case for tentative definitions in chained PCH. Fix a bug that completely messed up source locations and thus caused a crash whenever a diagnostic was emitted in chained PCH files.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109660 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
b86238d2f0a93ce91717906f9211927f48a7121a 28-Jul-2010 Sebastian Redl <sebastian.redl@getdesigned.at> Add a test case for tentative definitions in chained PCH. Fix a bug that completely messed up source locations and thus caused a crash whenever a diagnostic was emitted in chained PCH files.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109660 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
8996eea5e6da975455e44bc1ee3a565d425a4916 27-Jul-2010 Douglas Gregor <doug.gregor@gmail.com> When remapping a virtual file, also make an entry for the file with
its absolute path on disk. Also, introduce a fun test for the
precompiled preamble, which almost works...


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109470 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
3e15e0a7b4da6d906357b00b1bd2bba5ec3195ed 27-Jul-2010 Douglas Gregor <dgregor@apple.com> When remapping a virtual file, also make an entry for the file with
its absolute path on disk. Also, introduce a fun test for the
precompiled preamble, which almost works...


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109470 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
923d0beb91543df63b166abaad9288a74dda8795 26-Jul-2010 Douglas Gregor <doug.gregor@gmail.com> Introduce basic support for loading a precompiled preamble while
reparsing an ASTUnit. When saving a preamble, create a buffer larger
than the actual file we're working with but fill everything from the
end of the preamble to the end of the file with spaces (so the lexer
will quickly skip them). When we load the file, create a buffer of the
same size, filling it with the file and then spaces. Then, instruct
the lexer to start lexing after the preamble, therefore continuing the
parse from the spot where the preamble left off.

It's now possible to perform a simple preamble build + parse (+
reparse) with ASTUnit. However, one has to disable a bunch of checking
in the PCH reader to do so. That part isn't committed; it will likely
be handled with some other kind of flag (e.g., -fno-validate-pch).

As part of this, fix some issues with null termination of the memory
buffers created for the preamble; we were trying to explicitly
NULL-terminate them, even though they were also getting implicitly
NULL terminated, leading to excess warnings about NULL characters in
source files.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109445 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
f4f6c9db68465b886ec2e596feaa6ecc782395a4 26-Jul-2010 Douglas Gregor <dgregor@apple.com> Introduce basic support for loading a precompiled preamble while
reparsing an ASTUnit. When saving a preamble, create a buffer larger
than the actual file we're working with but fill everything from the
end of the preamble to the end of the file with spaces (so the lexer
will quickly skip them). When we load the file, create a buffer of the
same size, filling it with the file and then spaces. Then, instruct
the lexer to start lexing after the preamble, therefore continuing the
parse from the spot where the preamble left off.

It's now possible to perform a simple preamble build + parse (+
reparse) with ASTUnit. However, one has to disable a bunch of checking
in the PCH reader to do so. That part isn't committed; it will likely
be handled with some other kind of flag (e.g., -fno-validate-pch).

As part of this, fix some issues with null termination of the memory
buffers created for the preamble; we were trying to explicitly
NULL-terminate them, even though they were also getting implicitly
NULL terminated, leading to excess warnings about NULL characters in
source files.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109445 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
c0dd65e0f3e986a09729455447f3ef6d40bf3256 26-Jul-2010 Dan Gohman <gohman@apple.com> Fix namespace polution.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109440 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
3c46e8db99196179b30e7ac5c20c4efd5f3926d7 26-Jul-2010 Dan Gohman <gohman@apple.com> Fix namespace polution.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109440 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
df5e9452ddfbb6931fb474a70d658937fad749d3 25-Jul-2010 Benjamin Kramer <benny.kra@googlemail.com> Wrap bit mangling logic for DiagMappings in its own class so it doesn't leak
into other code. Make it an array instead of a constant-length vector.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109384 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
3c2d3016adec79c81c4efff64e208fd3ecdd92ae 25-Jul-2010 Benjamin Kramer <benny.kra@googlemail.com> Wrap bit mangling logic for DiagMappings in its own class so it doesn't leak
into other code. Make it an array instead of a constant-length vector.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109384 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
3736cc27255fddd14cf5bca6773181709aa163cc 21-Jul-2010 Nate Begeman <natebegeman@mac.com> Catch thinko that Daniel Dunbar found.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109023 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
ad4f387b451372c3e9b533995aa216678b78c53d 21-Jul-2010 Nate Begeman <natebegeman@mac.com> Catch thinko that Daniel Dunbar found.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109023 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
472bd999efd65403e493169e48380f591ff262cc 21-Jul-2010 Nate Begeman <natebegeman@mac.com> Fix win64 compilation of constants like 0xFFFFFFFFFFFFFFFFULL

intmax_t is __int64 (long long to clang), per VS 2010 stdint.h



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108980 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
dbf8ea413e7b4002d6f0f80415fe447652bc466d 21-Jul-2010 Nate Begeman <natebegeman@mac.com> Fix win64 compilation of constants like 0xFFFFFFFFFFFFFFFFULL

intmax_t is __int64 (long long to clang), per VS 2010 stdint.h



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108980 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
c8ce3346d45378ed47546672a86c1bf47e87802e 19-Jul-2010 Douglas Gregor <doug.gregor@gmail.com> Introduce a new libclang API, clang_reparseTranslationUnit(), which
reparses an already-parsed translation unit. At the moment it's just a
convenience function, but we hope to use it for performance
optimizations.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108756 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
abc563f554951259bbe0315055cad92ee14d87e4 19-Jul-2010 Douglas Gregor <dgregor@apple.com> Introduce a new libclang API, clang_reparseTranslationUnit(), which
reparses an already-parsed translation unit. At the moment it's just a
convenience function, but we hope to use it for performance
optimizations.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108756 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
ef006823ecd2344aa0b47065d6d2b2bcbe95a853 18-Jul-2010 Chris Lattner <sabre@nondot.org> BUILD_ARCHIVE is the default for libraries, no need to set it.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108633 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
9638eef7e3b2ca30406c5d369a44aa49ff26b201 18-Jul-2010 Chris Lattner <sabre@nondot.org> BUILD_ARCHIVE is the default for libraries, no need to set it.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108633 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
3e57483debad96ec894bb53d856df066f89089a3 16-Jul-2010 Ted Kremenek <kremenek@apple.com> Add builtin definition for scanf, including extending the builtin encoding to
represent builtins that have the "scanf" attribution (via the format attribute) just
like we do with printf functions. Follow-up work is needed to add similar support
for fscanf et al.

This is to support format-string checking for scanf functions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108499 91177308-0d34-0410-b5e6-96231b3b80d8
uiltins.cpp
bee05c1206dcd525e0a1f066d166ad3e972a500e 16-Jul-2010 Ted Kremenek <kremenek@apple.com> Add builtin definition for scanf, including extending the builtin encoding to
represent builtins that have the "scanf" attribution (via the format attribute) just
like we do with printf functions. Follow-up work is needed to add similar support
for fscanf et al.

This is to support format-string checking for scanf functions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108499 91177308-0d34-0410-b5e6-96231b3b80d8
uiltins.cpp
6f94dbb24b4bda547bf7492cf707aeadef311ddf 15-Jul-2010 Daniel Dunbar <daniel@zuster.org> CodeGen/ObjC/NeXT: Fix Obj-C message send to match llvm-gcc when choosing
whether to use objc_msgSend_fpret; the choice is target dependent, not Obj-C ABI
dependent.
- <rdar://problem/8139758> arm objc _objc_msgSend_fpret bug

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108379 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
dacf9dda17346c628fdd8c5df53c681738db0dc5 15-Jul-2010 Daniel Dunbar <daniel@zuster.org> CodeGen/ObjC/NeXT: Fix Obj-C message send to match llvm-gcc when choosing
whether to use objc_msgSend_fpret; the choice is target dependent, not Obj-C ABI
dependent.
- <rdar://problem/8139758> arm objc _objc_msgSend_fpret bug

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108379 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
8254d63f615f04f3b27894c9e0a355e20f43a6f7 15-Jul-2010 Benjamin Kramer <benny.kra@googlemail.com> Pass StringRefs by value.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108375 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
ec1b1cc006cef19e0a95d0ea6fbfd37d0d615066 15-Jul-2010 Benjamin Kramer <benny.kra@googlemail.com> Pass StringRefs by value.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108375 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
7ba29ecb828f3d9c7ab3d39714f1315b640538bd 10-Jul-2010 John Thompson <john.thompson.jtsoftware@gmail.com> Hack for dealing with commas until we support multiple alternative constraints, per pr7338.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108028 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
bb0cf4a29d75a660bbdd20761b9830a38a910419 10-Jul-2010 John Thompson <John.Thompson.JTSoftware@gmail.com> Hack for dealing with commas until we support multiple alternative constraints, per pr7338.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108028 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
bb5d1ae16f0f346bfb0ce5177d392758b0476538 09-Jul-2010 John Thompson <john.thompson.jtsoftware@gmail.com> Revert 107953, remove comma ignoring from PPC constraints.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107956 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
ab9e2f5aa498a5e0a67db4c823de3e995b86688e 09-Jul-2010 John Thompson <John.Thompson.JTSoftware@gmail.com> Revert 107953, remove comma ignoring from PPC constraints.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107956 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
da229d7532e27225fe015daaf1a86071c3f0bc3a 09-Jul-2010 John Thompson <john.thompson.jtsoftware@gmail.com> Updating PPC target to ignore commas in asm contrains, as apparently that is what gcc does.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107953 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
ec3a5d8975ced34ab16fe2d39dc759dc03ea8750 09-Jul-2010 John Thompson <John.Thompson.JTSoftware@gmail.com> Updating PPC target to ignore commas in asm contrains, as apparently that is what gcc does.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107953 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
6f4bed50c076d7c8dd115c4c8af150d44bb6b379 07-Jul-2010 Chris Lattner <sabre@nondot.org> add driver support for minix, patch by Kees van Reeuwijk
from PR7583


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107788 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
38e317d6dce161b249508686cc67eb7176958762 07-Jul-2010 Chris Lattner <sabre@nondot.org> add driver support for minix, patch by Kees van Reeuwijk
from PR7583


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107788 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
d109c6262ddef0ad4d1c6fdac29f1c7428987505 25-Jun-2010 Eric Christopher <echristo@apple.com> Translate numbers properly.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106873 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
dd53ec9524cff66dfd7d4ea45ed651bf682a3254 25-Jun-2010 Eric Christopher <echristo@apple.com> Translate numbers properly.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106873 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
e0a3947f6d035da90ee7a4ebaf69f381c34185e4 25-Jun-2010 John Thompson <john.thompson.jtsoftware@gmail.com> Fixed another double-char in PPC-specific asm constraints.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106812 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
56b6ecad6c117a3f937cb22977c02ad9274cad33 25-Jun-2010 John Thompson <John.Thompson.JTSoftware@gmail.com> Fixed another double-char in PPC-specific asm constraints.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106812 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1deeb9f84c6e25bbe7b0a00eaa86a8f49d1b1e70 25-Jun-2010 John Thompson <john.thompson.jtsoftware@gmail.com> Added PPC-specific asm constraints, PS3 configuration changes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106806 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
8e6065af76763f47210dcef4fe81b0a0c1f0c999 25-Jun-2010 John Thompson <John.Thompson.JTSoftware@gmail.com> Added PPC-specific asm constraints, PS3 configuration changes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106806 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
45ead230aed931bef48b9d4e6600941081df44ae 24-Jun-2010 Eric Christopher <echristo@apple.com> More clang support for darwin tls. Add a __has_feature macro and
target specific preprocessor define as well.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106715 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1f84f8d970a673e487b40d341cd3e8d52ca9cc22 24-Jun-2010 Eric Christopher <echristo@apple.com> More clang support for darwin tls. Add a __has_feature macro and
target specific preprocessor define as well.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106715 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
78eef07e2d081112922d5c5de20af6780c2a1f91 19-Jun-2010 Chris Lattner <sabre@nondot.org> introduce a new CharSourceRange class, and enhance the diagnostics routines
to use them instead of SourceRange. CharSourceRange is just a SourceRange
plus a bool that indicates whether the range has the end character resolved
or whether the end location is the start of the end token. While most of
the compiler wants to think of ranges that have ends that are the start of
the end token, the printf diagnostic stuff wants to highlight ranges within
tokens.

This is transparent to the diagnostic stuff. To start taking advantage of
the new capabilities, you can do something like this:
Diag(..) << CharSourceRange::getCharRange(Begin,End)





git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106338 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
0a76aae8c03cb7dd7bdbe683485560afaf695959 19-Jun-2010 Chris Lattner <sabre@nondot.org> introduce a new CharSourceRange class, and enhance the diagnostics routines
to use them instead of SourceRange. CharSourceRange is just a SourceRange
plus a bool that indicates whether the range has the end character resolved
or whether the end location is the start of the end token. While most of
the compiler wants to think of ranges that have ends that are the start of
the end token, the printf diagnostic stuff wants to highlight ranges within
tokens.

This is transparent to the diagnostic stuff. To start taking advantage of
the new capabilities, you can do something like this:
Diag(..) << CharSourceRange::getCharRange(Begin,End)





git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106338 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
976d174ca7df21123db7901c5d8d0af328bc1568 17-Jun-2010 Douglas Gregor <doug.gregor@gmail.com> Update CMake build system for ARM NEON generation.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106220 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
2390b62f3afd9cc83d03a1972d4533eb52c246a4 17-Jun-2010 Douglas Gregor <dgregor@apple.com> Update CMake build system for ARM NEON generation.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106220 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
00f90b974369ccd699c3d29e4edef8526d78083c 17-Jun-2010 Sean Hunt <rideau3@gmail.com> Update CMake build for new attribute changes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106188 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
ee6e4b4baa1acd85ba8b142862ac5986621aaffd 17-Jun-2010 Sean Hunt <rideau3@gmail.com> Update CMake build for new attribute changes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106188 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
4bf99130178f92af4eb958837bff9d6266f06227 11-Jun-2010 Jeffrey Yasskin <jyasskin@google.com> Add an option -fshow-overloads=best|all to limit the number of overload
candidates printed. We default to 'all'. At the moment, 'best' prints only
the first 4 overloads, but we'll improve that over time.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105815 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
5edbdcc62098e305cd55654814dcf783a3f3c477 11-Jun-2010 Jeffrey Yasskin <jyasskin@google.com> Add an option -fshow-overloads=best|all to limit the number of overload
candidates printed. We default to 'all'. At the moment, 'best' prints only
the first 4 overloads, but we'll improve that over time.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105815 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
fed3a2b1dfd4e96b8bf74851e80e2f162f81b4ec 11-Jun-2010 Charles Davis <cdavis@mines.edu> Add an option to specify the target C++ ABI to the frontend. Use it to
select either the default Itanium ABI or the new, experimental Microsoft ABI.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105804 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
98b7c5c496dfccb39287b8f7d8f1444594936d10 11-Jun-2010 Charles Davis <cdavis@mines.edu> Add an option to specify the target C++ ABI to the frontend. Use it to
select either the default Itanium ABI or the new, experimental Microsoft ABI.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105804 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
d16a220f31e45964495aa6b7fe39b10eee3f5d6f 10-Jun-2010 Rafael Espindola <rafael.espindola@gmail.com> Create a LinuxTargetInfo on ARM. This make clang correctly expand
__USER_LABEL_PREFIX__.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105771 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
022a8a59f6eaacbfe3d934ce940e16099e44eebd 10-Jun-2010 Rafael Espindola <rafael.espindola@gmail.com> Create a LinuxTargetInfo on ARM. This make clang correctly expand
__USER_LABEL_PREFIX__.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105771 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
608b5793179e667766022a3710204a676f3e350f 09-Jun-2010 Anders Carlsson <andersca@mac.com> On Darwin, initialization and destruction functions should go into the __StaticInit section.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105650 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
18af368c080b9d60e34e670cd01f7d2d3ad2ba48 09-Jun-2010 Anders Carlsson <andersca@mac.com> On Darwin, initialization and destruction functions should go into the __StaticInit section.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105650 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
ed5bf62969af84e508b62c0a9b19756bbfb2ce38 08-Jun-2010 Daniel Dunbar <daniel@zuster.org> Makefiles: Set Clang CPP compiler flags in a single location, instead of scattered throughout the project Makefiles.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105638 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
c4dec1c58eeb2ef46cdb64120eb6b819c6927afb 08-Jun-2010 Daniel Dunbar <daniel@zuster.org> Makefiles: Set Clang CPP compiler flags in a single location, instead of scattered throughout the project Makefiles.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105638 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
e55e5e35d511ea62e635374aeca1c09ba7ce6d88 08-Jun-2010 Daniel Dunbar <daniel@zuster.org> Makefile: Switch Clang Makefiles to always include the top-level Clang Makefile.
- This eliminates most dependencies on how Clang is installed relative to LLVM.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105637 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
afed099bd2e759efd4bb63fdc525d3445f94cc13 08-Jun-2010 Daniel Dunbar <daniel@zuster.org> Makefile: Switch Clang Makefiles to always include the top-level Clang Makefile.
- This eliminates most dependencies on how Clang is installed relative to LLVM.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105637 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
c8bfd0f8bb22ea019c673898bbdb07a834f0d821 08-Jun-2010 Shih-wei Liao <sliao@google.com> Git hiccup. Retry....

Change-Id: I5a329137a43f36bab32ea62386ade11da550c0b0
ndroid.mk
200213f20fef82c10b7da00873c99b93cee6da63 08-Jun-2010 Shih-wei Liao <sliao@google.com> Fix llvm.mk and the other 49 mk files

Change-Id: I5aa02363c1083297d163a575f5a35c495f950230
ndroid.mk
bfa7c00b14aea814fdbfc693bba43cbd25878775 05-Jun-2010 Rafael Espindola <rafael.espindola@gmail.com> Correctly align large arrays in x86-64. This fixes PR5599.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105500 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
6deecb0d46bcfd048e651d2db7c4fb0d6407da96 05-Jun-2010 Rafael Espindola <rafael.espindola@gmail.com> Correctly align large arrays in x86-64. This fixes PR5599.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105500 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
ea285162342df160e7860e26528bc7110bc6c0cd 04-Jun-2010 Shih-wei Liao <sliao@google.com> Initial slang.

Change-Id: I4f84a741e5fbc440cd4c251406d2b611a237f713
ndroid.mk
uiltins.cpp
MakeLists.txt
onvertUTF.c
iagnostic.cpp
ileManager.cpp
dentifierTable.cpp
akefile
ourceLocation.cpp
ourceManager.cpp
argetInfo.cpp
argets.cpp
okenKinds.cpp
ersion.cpp
6501cabe7d6b2e6efe746ec3ce23c951255701a0 30-May-2010 Daniel Dunbar <daniel@zuster.org> Accept '#pragma options align=mac68k' on Darwin/PPC and Darwin/PPC64.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105116 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
4c6a22610146e0046602060745a51548d565ab0e 30-May-2010 Daniel Dunbar <daniel@zuster.org> Accept '#pragma options align=mac68k' on Darwin/PPC and Darwin/PPC64.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105116 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
33bf24b6c409519bd3bff02fca66988e073d85e4 28-May-2010 John McCall <rjmccall@apple.com> Roll back r104941.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104990 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
2b7baf0816a40af3fde3a3e174192a549b785a50 28-May-2010 John McCall <rjmccall@apple.com> Roll back r104941.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104990 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
65c142e3f6681b65406f8c9f0ac7cf3de866e010 28-May-2010 John McCall <rjmccall@apple.com> Add a new attribute on records, __attribute__((adl_invisible)), and define
the x86-64 __va_list_tag with this attribute. The attribute causes the
affected type to behave like a fundamental type when considered by ADL.

(x86-64 is the only target we currently provide with a struct-based
__builtin_va_list)

Fixes PR6762.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104941 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1d0a5856d066f9030efbe3e0d9bbbb50ea597b99 28-May-2010 John McCall <rjmccall@apple.com> Add a new attribute on records, __attribute__((adl_invisible)), and define
the x86-64 __va_list_tag with this attribute. The attribute causes the
affected type to behave like a fundamental type when considered by ADL.

(x86-64 is the only target we currently provide with a struct-based
__builtin_va_list)

Fixes PR6762.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104941 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
0104558d1389454db83e64d878b6f8ce7b766d2f 27-May-2010 Daniel Dunbar <daniel@zuster.org> Darwin/ARM seems to support mac68k align as well.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104828 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
350b9f3e8ff19bcb1f5130ad4fbc99dde4ec24c9 27-May-2010 Daniel Dunbar <daniel@zuster.org> Darwin/ARM seems to support mac68k align as well.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104828 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
9451c5428d52c675c93eb968c2fc3e595f8d2f01 27-May-2010 Daniel Dunbar <daniel@zuster.org> Sema: Reject '#pragma options align=mac68k' everywhere except i386-apple-darwin.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104789 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
613fd67e575ff1c038535b18dafebca070f3ed91 27-May-2010 Daniel Dunbar <daniel@zuster.org> Sema: Reject '#pragma options align=mac68k' everywhere except i386-apple-darwin.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104789 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
b4141fd89f03dedd8dbbbd1f6aa17db30a498584 21-May-2010 Chris Lattner <sabre@nondot.org> don't make _Bool be a keyword in -fms-extensions mode, patch by
Steven Watanabe!



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104373 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
34d7c4d62863ca0d5bcf705da0e1001878386c26 21-May-2010 Chris Lattner <sabre@nondot.org> don't make _Bool be a keyword in -fms-extensions mode, patch by
Steven Watanabe!



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104373 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
de3f159916eb03a48eff305886616ecc18eb7789 13-May-2010 Chandler Carruth <chandlerc@gmail.com> Update the types for warning option subgroup arrays to 'short', we have more
than 127 groups so this was already failing given -fsigned-char. A subsequent
to commit to TableGen will generate shorts for the arrays themselves.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103703 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
5ef12b37f00f747f130664c655bb9b29dc10c816 13-May-2010 Chandler Carruth <chandlerc@gmail.com> Update the types for warning option subgroup arrays to 'short', we have more
than 127 groups so this was already failing given -fsigned-char. A subsequent
to commit to TableGen will generate shorts for the arrays themselves.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103703 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
cbcd7f3f10e32c649f00d0a01cbfabb716a038de 07-May-2010 Chris Lattner <sabre@nondot.org> clean up isBeforeInTranslationUnit by factoring out some common
code into a MoveUpIncludeHierarchy helper, and use the helper to
fix a case involving macros which regressed from my recent patch.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103288 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
d3b8cc27920a0f4eb6e832e24a602475aa9f0ff0 07-May-2010 Chris Lattner <sabre@nondot.org> clean up isBeforeInTranslationUnit by factoring out some common
code into a MoveUpIncludeHierarchy helper, and use the helper to
fix a case involving macros which regressed from my recent patch.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103288 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
669a67760c601a20787d375eb73047763d5adaaa 07-May-2010 Chris Lattner <sabre@nondot.org> reimplement the guts of SourceManager::isBeforeInTranslationUnit
to be algorithmically faster and avoid an std::map. This routine
basically boils down to finding the nearest common ancestor in a
tree, and we (implicitly) have information about nesting depth,
use it!

This wraps up rdar://7948633 - SourceManager::isBeforeInTranslationUnit has poor performance


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103239 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
48296ba924cb95e0d898fa7a1da33f23be8c731c 07-May-2010 Chris Lattner <sabre@nondot.org> reimplement the guts of SourceManager::isBeforeInTranslationUnit
to be algorithmically faster and avoid an std::map. This routine
basically boils down to finding the nearest common ancestor in a
tree, and we (implicitly) have information about nesting depth,
use it!

This wraps up rdar://7948633 - SourceManager::isBeforeInTranslationUnit has poor performance


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103239 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
fc27c0d5b02def0602e93c1125de61e1c265d5c1 07-May-2010 Chris Lattner <sabre@nondot.org> start using the caching now that it appears to work!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103236 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
66a915fbd73a0e404ed28f58e4a3f1b8d0f8fb94 07-May-2010 Chris Lattner <sabre@nondot.org> start using the caching now that it appears to work!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103236 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
c70306e9aecfba0dbc325d9a9df3d8033a8a0d19 07-May-2010 Chris Lattner <sabre@nondot.org> reimplement the caching in the SourceManager::isBeforeInTranslationUnit()
method to be correct. Right now it correctly computes the cache, then
goes ahead and computes the result the hard way, then asserts that they
match. Next I'll actually turn it on.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103231 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
dcb1d68f6ffa183f3919aee6b554aec3793bf13e 07-May-2010 Chris Lattner <sabre@nondot.org> reimplement the caching in the SourceManager::isBeforeInTranslationUnit()
method to be correct. Right now it correctly computes the cache, then
goes ahead and computes the result the hard way, then asserts that they
match. Next I'll actually turn it on.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103231 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
d6804c599dabbe26c0054afbc97ad089fcde254c 06-May-2010 Daniel Dunbar <daniel@zuster.org> Basic: Update getClangRepositoryPath for my change to integration branch layout.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103192 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
4cadeec91b805bba64a720c6ad85052e97b5b30c 06-May-2010 Daniel Dunbar <daniel@zuster.org> Basic: Update getClangRepositoryPath for my change to integration branch layout.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103192 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
89429ad868c2156bcf04ab440a03512db980072b 06-May-2010 Ted Kremenek <kremenek@apple.com> Workaround a really serious caching bug in SourceManager::isBeforeInTranslationUnit() where the
method will sometimes return different results for the same input SourceLocations. I haven't
unraveled this method completely yet, so this truly is a workaround until a better fix comes
along.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103143 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
672c003286c6493121ea1c9aca31f5504de737d2 06-May-2010 Ted Kremenek <kremenek@apple.com> Workaround a really serious caching bug in SourceManager::isBeforeInTranslationUnit() where the
method will sometimes return different results for the same input SourceLocations. I haven't
unraveled this method completely yet, so this truly is a workaround until a better fix comes
along.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103143 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
ff1c25eea3870b8220aa484b3b51e348c90d2566 04-May-2010 Chris Lattner <sabre@nondot.org> When -fdiagnostics-print-source-range-info is specified,
print the diagnostic category number in the [] at the end
of the line. For example:

$ cat t.c
#include <stdio.h>
void foo() {
printf("%s", 4);
}
$ clang t.c -fsyntax-only -fdiagnostics-print-source-range-info
t.c:3:11:{3:10-3:12}{3:15-3:16}: warning: conversion specifies type 'char *' but the argument has type 'int' [-Wformat,1]
printf("%s", 4);
~^ ~
1 warning generated.

Clients that want category information can now pick the number
out of the output, rdar://7928231.

More coming.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103053 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
c9b889044c8e1e2d6ab194e34e8b74f6998094fa 04-May-2010 Chris Lattner <sabre@nondot.org> When -fdiagnostics-print-source-range-info is specified,
print the diagnostic category number in the [] at the end
of the line. For example:

$ cat t.c
#include <stdio.h>
void foo() {
printf("%s", 4);
}
$ clang t.c -fsyntax-only -fdiagnostics-print-source-range-info
t.c:3:11:{3:10-3:12}{3:15-3:16}: warning: conversion specifies type 'char *' but the argument has type 'int' [-Wformat,1]
printf("%s", 4);
~^ ~
1 warning generated.

Clients that want category information can now pick the number
out of the output, rdar://7928231.

More coming.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103053 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
38d0f2ffd306c187fd862aabb22e01311b78468d 04-May-2010 Chris Lattner <sabre@nondot.org> add the ability to associate 'category' names with diagnostics
and diagnostic groups. This allows the compiler to group
diagnostics together (e.g. "Logic Warning",
"Format String Warning", etc) like the static analyzer does.
This is not exposed through anything in the compiler yet.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103051 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
27b0f510d1d4f9ed5668eec1195f04b4a74a4426 04-May-2010 Chris Lattner <sabre@nondot.org> add the ability to associate 'category' names with diagnostics
and diagnostic groups. This allows the compiler to group
diagnostics together (e.g. "Logic Warning",
"Format String Warning", etc) like the static analyzer does.
This is not exposed through anything in the compiler yet.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103051 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
e20b812c499916b8b1c6fbd52823ca6b4c6413ec 23-Apr-2010 Chris Lattner <sabre@nondot.org> david conrad points out that {|} in inline assembly on arm are not asm
variants. This fixes neon inline asm which my patch for PR6780 broke.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102181 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
9bffb0701d02a10e77e1ac0f196074eed6466ed0 23-Apr-2010 Chris Lattner <sabre@nondot.org> david conrad points out that {|} in inline assembly on arm are not asm
variants. This fixes neon inline asm which my patch for PR6780 broke.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102181 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
5b8b18a138f0ae834f195e5e1be7fc84931bd4f9 22-Apr-2010 Chris Lattner <sabre@nondot.org> another tweak for haiku support, patch by Paul Davey!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102098 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
fe1ea7b3e4552a612a1b0a11734598651e5ddfdf 22-Apr-2010 Chris Lattner <sabre@nondot.org> another tweak for haiku support, patch by Paul Davey!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102098 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
9eb811b460351d6bc0144ab6c2b495f01035123b 22-Apr-2010 Daniel Dunbar <daniel@zuster.org> ARM/APCS: Don't respect bit-field types when laying out structures.
- This fixes the last known ABI issues with ARM/APCS.

- I've run the first 1k ABITests with '--no-unsigned --no-vector --no-complex'
on {armv6, armv7} x {-mno-thumb, -mthumb}, and the first 10k tests for armv7
-mthumb, for both function return types and single argument calls. These all
pass now (they failed horribly before without --no-bitfield).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102070 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
684de63867fac4ffe2f4c97756a16bfcb2d8b54b 22-Apr-2010 Daniel Dunbar <daniel@zuster.org> ARM/APCS: Don't respect bit-field types when laying out structures.
- This fixes the last known ABI issues with ARM/APCS.

- I've run the first 1k ABITests with '--no-unsigned --no-vector --no-complex'
on {armv6, armv7} x {-mno-thumb, -mthumb}, and the first 10k tests for armv7
-mthumb, for both function return types and single argument calls. These all
pass now (they failed horribly before without --no-bitfield).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102070 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
9b22a175df4d06c7fb6b1597444442b241ba6255 21-Apr-2010 Douglas Gregor <doug.gregor@gmail.com> Sink the _GNU_SOURCE definition down into the target configuration,
and only define it where we know we need it---Linux and Cygwin. Thanks
to Chris for the prodding.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101989 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
2b003fd2766914133fa7418e1b368ca171ac4205 21-Apr-2010 Douglas Gregor <dgregor@apple.com> Sink the _GNU_SOURCE definition down into the target configuration,
and only define it where we know we need it---Linux and Cygwin. Thanks
to Chris for the prodding.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101989 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
d1af63ce83d16bd87e384423c83aad7fbba431e1 20-Apr-2010 Chris Lattner <sabre@nondot.org> change FullSourceLoc to have a *const* SourceManager&, eliminating
a const_cast.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101940 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
5c5db4e94bd1243ba92563acba51ba66afa94917 20-Apr-2010 Chris Lattner <sabre@nondot.org> change FullSourceLoc to have a *const* SourceManager&, eliminating
a const_cast.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101940 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
d8dc8f7f327f2d7f4517e71b54ddaf38b6e7c3e9 20-Apr-2010 Chris Lattner <sabre@nondot.org> push some source location information down through the compiler,
into ContentCache::getBuffer. This allows it to produce
diagnostics on the broken #include line instead of without a
location.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101939 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
e127a0d80155b45dafe77f2b4380e5fa111a3345 20-Apr-2010 Chris Lattner <sabre@nondot.org> push some source location information down through the compiler,
into ContentCache::getBuffer. This allows it to produce
diagnostics on the broken #include line instead of without a
location.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101939 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
0a40dacf833d9b68b6c8a5cd3c4ed4ec0ec3d69b 20-Apr-2010 Chris Lattner <sabre@nondot.org> enhance sourcemgr to detect various UTF BOM's and emit a fatal error
about it instead of producing tons of garbage from the lexer.

It would be even better for sourcemgr to dynamically transcode (e.g.
from UTF16 -> UTF8).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101924 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
38caec48bc1c9816ca59b8d164a64447ee208c2e 20-Apr-2010 Chris Lattner <sabre@nondot.org> enhance sourcemgr to detect various UTF BOM's and emit a fatal error
about it instead of producing tons of garbage from the lexer.

It would be even better for sourcemgr to dynamically transcode (e.g.
from UTF16 -> UTF8).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101924 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
c693861122503dacd40daf3b2fba092db42513c6 20-Apr-2010 Douglas Gregor <doug.gregor@gmail.com> Introduce a limit on the depth of the template instantiation backtrace
we will print with each error that occurs during template
instantiation. When the backtrace is longer than that, we will print
N/2 of the innermost backtrace entries and N/2 of the outermost
backtrace entries, then skip the middle entries with a note such as:

note: suppressed 2 template instantiation contexts; use
-ftemplate-backtrace-limit=N to change the number of template
instantiation entries shown

This should eliminate some excessively long backtraces that aren't
providing any value.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101882 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
575cf3791216c33770ba950430493cdd43099f8f 20-Apr-2010 Douglas Gregor <dgregor@apple.com> Introduce a limit on the depth of the template instantiation backtrace
we will print with each error that occurs during template
instantiation. When the backtrace is longer than that, we will print
N/2 of the innermost backtrace entries and N/2 of the outermost
backtrace entries, then skip the middle entries with a note such as:

note: suppressed 2 template instantiation contexts; use
-ftemplate-backtrace-limit=N to change the number of template
instantiation entries shown

This should eliminate some excessively long backtraces that aren't
providing any value.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101882 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
1cfbc68a39712b410f0b5859b87b57f9ff749cea 17-Apr-2010 Chandler Carruth <chandlerc@gmail.com> Add support for '-fgnu-keywords' and '-fasm' to Clang's driver. They are not
implemented precisely the same as GCC, but the distinction GCC makes isn't
useful to represent. This allows parsing code which uses GCC-specific keywords
('asm', etc.) without parsing in a fully GNU mode.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101667 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
eb5d7b752651283de5abfcc2f91df7227582a08d 17-Apr-2010 Chandler Carruth <chandlerc@gmail.com> Add support for '-fgnu-keywords' and '-fasm' to Clang's driver. They are not
implemented precisely the same as GCC, but the distinction GCC makes isn't
useful to represent. This allows parsing code which uses GCC-specific keywords
('asm', etc.) without parsing in a fully GNU mode.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101667 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
279ac317a9a1a8b5bc8d3684ac88a11de012eb36 15-Apr-2010 Daniel Dunbar <daniel@zuster.org> clang -cc1: Add a -fno-bitfield-type-align option, for my own testing purposes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101370 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
fb937b8c5f1c5dc9cfd4223b5cae230cc42b0287 15-Apr-2010 Daniel Dunbar <daniel@zuster.org> clang -cc1: Add a -fno-bitfield-type-align option, for my own testing purposes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101370 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
3d1c024dc8dba472a520f00053a4422154614cf0 15-Apr-2010 Daniel Dunbar <daniel@zuster.org> Tweak spelling (Bitfield -> BitField)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101369 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
b6830d616a068971f13e1e213e06a945c8c93cea 15-Apr-2010 Daniel Dunbar <daniel@zuster.org> Tweak spelling (Bitfield -> BitField)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101369 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
ffa6d1ca26643972b8b6bf394e0cc1cb757643ef 15-Apr-2010 Daniel Dunbar <daniel@zuster.org> Add TargetInfo::useBitfieldTypeAlignment().
- Used to determine whether the alignment of the type in a bit-field is
respected when laying out structures. The default is true, targets can
override this as needed.

- This is designed to correspond to the PCC_BITFIELD_TYPE_MATTERS macro in
gcc. The AST/Sema implementation only affects one line, unless I have
forgotten something. I'd appreciate further review.

- IRgen still needs to be updated to fully support this (which is effectively
PR5591).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101356 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
b6a169395c1b30c76daffebcbd2164b6247a5d21 15-Apr-2010 Daniel Dunbar <daniel@zuster.org> Add TargetInfo::useBitfieldTypeAlignment().
- Used to determine whether the alignment of the type in a bit-field is
respected when laying out structures. The default is true, targets can
override this as needed.

- This is designed to correspond to the PCC_BITFIELD_TYPE_MATTERS macro in
gcc. The AST/Sema implementation only affects one line, unless I have
forgotten something. I'd appreciate further review.

- IRgen still needs to be updated to fully support this (which is effectively
PR5591).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101356 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
e1e4187656e16bead3702efa068aadfb0055f962 15-Apr-2010 Douglas Gregor <doug.gregor@gmail.com> Once we've emitted a fatal diagnostic, keep counting errors but with a
separate count of "suppressed" errors. This way, semantic analysis
bits that depend on the error count to determine whether problems
occured (e.g., some template argument deduction failures, jump-scope
checking) will not get confused.

The actual problem here is that a missing #include (which is a fatal
error) could cause the jump-scope checker to run on invalid code,
which it is not prepared to do. Trivial fix for both
<rdar://problem/7775941> and <rdar://problem/7775709>.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101297 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
1864f2eb59471d07db51adfc3e5b1a229eed631a 15-Apr-2010 Douglas Gregor <dgregor@apple.com> Once we've emitted a fatal diagnostic, keep counting errors but with a
separate count of "suppressed" errors. This way, semantic analysis
bits that depend on the error count to determine whether problems
occured (e.g., some template argument deduction failures, jump-scope
checking) will not get confused.

The actual problem here is that a missing #include (which is a fatal
error) could cause the jump-scope checker to run on invalid code,
which it is not prepared to do. Trivial fix for both
<rdar://problem/7775941> and <rdar://problem/7775709>.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101297 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
db32f0eee66682b5023179ce31968f6eab3e6244 12-Apr-2010 Chris Lattner <sabre@nondot.org> fix PR6814 - Only print [-pedantic] on a diagnostic if -pedantic
actually turned it on. If a diag is produced by a warning which
is an extension but defaults to on, and has no warning group, don't
print any option info.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101071 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
04e442714c292d9381cad2ac14087991132bddca 12-Apr-2010 Chris Lattner <sabre@nondot.org> fix PR6814 - Only print [-pedantic] on a diagnostic if -pedantic
actually turned it on. If a diag is produced by a warning which
is an extension but defaults to on, and has no warning group, don't
print any option info.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101071 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
9ad0d677107a73e492eedc886e41e66ee7fefc72 12-Apr-2010 Ted Kremenek <kremenek@apple.com> Fix null dereference in 'WriteSourceLocation' when the FileEntry is null.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101060 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
ec55c941f2846db48bce4ed6dd2ce339e1a48962 12-Apr-2010 Ted Kremenek <kremenek@apple.com> Fix null dereference in 'WriteSourceLocation' when the FileEntry is null.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101060 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
f853e7319cfb327c5390166b53f7c5d812bdbf1e 11-Apr-2010 Chris Lattner <sabre@nondot.org> add haiku support, patch by Paul Davey!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100982 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
86ed3a326342fa2a8c9d9b5d1d7280c9bad2b007 11-Apr-2010 Chris Lattner <sabre@nondot.org> add haiku support, patch by Paul Davey!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100982 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
e47793b6778a2142b96c276a2dbc5f30a04c47c3 10-Apr-2010 Daniel Dunbar <daniel@zuster.org> Disable diag::err_file_modified on Win32 completely, until someone cares to fix
it. PR6812.
- This is another attempt at silencing annoying buildbot failures.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100914 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
0b3c773bdc4f5d5f3aaf882b2f7a5f14df6041e0 10-Apr-2010 Daniel Dunbar <daniel@zuster.org> Disable diag::err_file_modified on Win32 completely, until someone cares to fix
it. PR6812.
- This is another attempt at silencing annoying buildbot failures.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100914 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
12d8eca5dacd9cb347e2f464e9f3109affae7657 09-Apr-2010 Douglas Gregor <doug.gregor@gmail.com> On Windows, disable the modification-time check for files used in
precompiled headers and/or when reading the contents of the file into
memory. These checks seem to be causing spurious regression-test
failures on Windows.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100866 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
9f692a0308975cf24ef117c05e31284a1a944e86 09-Apr-2010 Douglas Gregor <dgregor@apple.com> On Windows, disable the modification-time check for files used in
precompiled headers and/or when reading the contents of the file into
memory. These checks seem to be causing spurious regression-test
failures on Windows.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100866 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
0f96ef65426bcb7db60a4f1d4ca31d90b46b0e5f 07-Apr-2010 Chris Lattner <sabre@nondot.org> add clang -cc1 level support for "-ferror-limit 42"


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100687 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
c100214fdc41a7ea215f75d433eb1cb829fd4330 07-Apr-2010 Chris Lattner <sabre@nondot.org> add clang -cc1 level support for "-ferror-limit 42"


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100687 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
d21b55fdf392a252af792758302512a52cd2341a 07-Apr-2010 Chris Lattner <sabre@nondot.org> add capabilities to stop emitting errors after some limit.
Right now the limit is 0 (aka disabled)


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100684 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
b205ac9fcd22b87b41697172d1983c5ae9dabaaf 07-Apr-2010 Chris Lattner <sabre@nondot.org> add capabilities to stop emitting errors after some limit.
Right now the limit is 0 (aka disabled)


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100684 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
e6c39d3a3e77c17bb9aa97be6e2e1ae2dbd654db 07-Apr-2010 Shih-wei Liao <sliao@google.com> libbcc

Change-Id: Ieaa3ebd5a38f370752495549f8870b534eeedfc5
uiltins.cpp
MakeLists.txt
onvertUTF.c
iagnostic.cpp
ileManager.cpp
dentifierTable.cpp
akefile
ourceLocation.cpp
ourceManager.cpp
argetInfo.cpp
argets.cpp
okenKinds.cpp
ersion.cpp
9c669c7b673233e4aac507ecb3daf6acdfc2fba7 07-Apr-2010 Chris Lattner <sabre@nondot.org> Instead of counting totally diagnostics, split the count into a count
of errors and warnings. This allows us to emit something like this:

2 warnings and 1 error generated.

instead of:

3 diagnostics generated.

This also stops counting 'notes' because they are just follow-on information
about the previous diag, not a diagnostic in themselves.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100675 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
53eee7ba970d21ff15bbd4334164037a3b4cc4b8 07-Apr-2010 Chris Lattner <sabre@nondot.org> Instead of counting totally diagnostics, split the count into a count
of errors and warnings. This allows us to emit something like this:

2 warnings and 1 error generated.

instead of:

3 diagnostics generated.

This also stops counting 'notes' because they are just follow-on information
about the previous diag, not a diagnostic in themselves.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100675 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
6c4e7875b76f4ab0709d008ade4c883ee61c75be 03-Apr-2010 Eric Christopher <echristo@apple.com> Add option and macro definition for AES instructions. Now produces real
assembly for testcases.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100253 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
eea12d17ec3527f4f9474571fd3011f3d825c45a 03-Apr-2010 Eric Christopher <echristo@apple.com> Add option and macro definition for AES instructions. Now produces real
assembly for testcases.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100253 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
b88ea9f1d1a402b0c9479c1c71a10cf65a5d4157 31-Mar-2010 Douglas Gregor <doug.gregor@gmail.com> Reinstate my CodeModificationHint -> FixItHint renaming patch, without
the C-only "optimization".


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100022 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
849b243d4065f56742a4677d6dc8277609a151f8 31-Mar-2010 Douglas Gregor <dgregor@apple.com> Reinstate my CodeModificationHint -> FixItHint renaming patch, without
the C-only "optimization".


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100022 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
100fdef5f9490615be95cc921c88cdba11c36d85 31-Mar-2010 Douglas Gregor <doug.gregor@gmail.com> Revert r100008, which inexplicably breaks the clang-i686-darwin10 builder

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100018 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
275313cbb0847f1f117f60d144d113804d4fa42d 31-Mar-2010 Douglas Gregor <dgregor@apple.com> Revert r100008, which inexplicably breaks the clang-i686-darwin10 builder

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100018 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
e885f84e7a6e363a54b9100afd1c63364808d959 31-Mar-2010 Douglas Gregor <doug.gregor@gmail.com> Rename CodeModificationHint to FixItHint, since we've been using the
term "fix-it" everywhere and even *I* get tired of long names
sometimes. No functionality change.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100008 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
d0ebe080eee7c37e73754068b47fd90cc506e128 31-Mar-2010 Douglas Gregor <dgregor@apple.com> Rename CodeModificationHint to FixItHint, since we've been using the
term "fix-it" everywhere and even *I* get tired of long names
sometimes. No functionality change.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100008 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
8072597e1d95bcd34bf81697f2eeff70c1a54909 30-Mar-2010 Douglas Gregor <doug.gregor@gmail.com> Optimize PartialDiagnostic's memory-allocation behavior by placing a
cache of PartialDiagnostic::Storage objects into an allocator within
the ASTContext. This eliminates a significant amount of malloc
traffic, for a 10% performance improvement in -fsyntax-only wall-clock
time with 403.gcc's combine.c.

Also, eliminate the RequireNonAbstractType hack I put in earlier,
which was but a symptom of this larger problem.

Fixes <rdar://problem/7806091>.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99849 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
fe6b2d481d91140923f4541f273b253291884214 30-Mar-2010 Douglas Gregor <dgregor@apple.com> Optimize PartialDiagnostic's memory-allocation behavior by placing a
cache of PartialDiagnostic::Storage objects into an allocator within
the ASTContext. This eliminates a significant amount of malloc
traffic, for a 10% performance improvement in -fsyntax-only wall-clock
time with 403.gcc's combine.c.

Also, eliminate the RequireNonAbstractType hack I put in earlier,
which was but a symptom of this larger problem.

Fixes <rdar://problem/7806091>.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99849 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
78dc67e0d8836ec6de51c3091fd5bd0314b076f1 25-Mar-2010 Douglas Gregor <doug.gregor@gmail.com> Teach the diagnostic engine to provide more detailed information about
how to handle a diagnostic during template argument deduction, which
may be "substitution failure", "suppress", or "report". This keeps us
from, e.g., emitting warnings while performing template argument
deduction.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99560 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
eab5d1eaaa662c849f1f9920dc8c6a31d7c32d47 25-Mar-2010 Douglas Gregor <dgregor@apple.com> Teach the diagnostic engine to provide more detailed information about
how to handle a diagnostic during template argument deduction, which
may be "substitution failure", "suppress", or "report". This keeps us
from, e.g., emitting warnings while performing template argument
deduction.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99560 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
fdd2fc31be480a918db8088753b2514c842ac25f 25-Mar-2010 John Thompson <john.thompson.jtsoftware@gmail.com> PS3 needs __PPC__. Should this be in the PPC target?

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99513 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
fb457977c8667ae0bae4e3cbfd14934ad21f011d 25-Mar-2010 John Thompson <John.Thompson.JTSoftware@gmail.com> PS3 needs __PPC__. Should this be in the PPC target?

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99513 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
19e7d4709cf630b57d2e8aa783164bf417f6df4c 22-Mar-2010 Douglas Gregor <doug.gregor@gmail.com> Fix a thinko and a typo in the delayed-diagnostic code.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99178 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
9e2dac9c9b6bc4384c816a447cca6516a03c89f2 22-Mar-2010 Douglas Gregor <dgregor@apple.com> Fix a thinko and a typo in the delayed-diagnostic code.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99178 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
4f6f0f8ad4780a121b81cdaccca6e2a0ea195f76 22-Mar-2010 Douglas Gregor <doug.gregor@gmail.com> Introduce the notion of a single "delayed" diagnostic into the
Diagnostic subsystem, which is used in the rare case where we find a
serious problem (i.e., an inconsistency in the file system) while
we're busy formatting another diagnostic. In this case, the delayed
diagnostic will be emitted after we're done with the other
diagnostic. This is only to be used for fatal conditions detected at
very inconvenient times, where we can neither stop the current
diagnostic in flight nor can we suppress the second error.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99175 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
ourceManager.cpp
93ea5cb0edf8e509c5113e70cb05ee247c9bdf6b 22-Mar-2010 Douglas Gregor <dgregor@apple.com> Introduce the notion of a single "delayed" diagnostic into the
Diagnostic subsystem, which is used in the rare case where we find a
serious problem (i.e., an inconsistency in the file system) while
we're busy formatting another diagnostic. In this case, the delayed
diagnostic will be emitted after we're done with the other
diagnostic. This is only to be used for fatal conditions detected at
very inconvenient times, where we can neither stop the current
diagnostic in flight nor can we suppress the second error.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99175 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
ourceManager.cpp
a80645719e6a724695641d997c6f831b4ddf7177 21-Mar-2010 Douglas Gregor <doug.gregor@gmail.com> Keep track of the size/modification time of each file source-location
entry in a precompiled header, so that we can detect modified files
even when we miss in the stat cache.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99149 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
2d52be56ff595341be3c6cec337af6763804ce66 21-Mar-2010 Douglas Gregor <dgregor@apple.com> Keep track of the size/modification time of each file source-location
entry in a precompiled header, so that we can detect modified files
even when we miss in the stat cache.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99149 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
25e35c447f324047e43a2a527e87fe0b14f05d5b 19-Mar-2010 Douglas Gregor <doug.gregor@gmail.com> Fix a longstanding (but previously unknown) bug in the lazy
deserialization of precompiled headers, where the deserialization of
the source location entry for a buffer (e.g., macro instantiation
scratch space) would overwrite a one-element FileID cache in the
source manager. When tickled at the wrong time, we would return the
wrong decomposed source location and eventually cause c-index-test to
crash.

Found by dumb luck. It's amazing this hasn't shown up before.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98940 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
5de65721bd31e57f883634d9f10b1bff75c4ffc2 19-Mar-2010 Douglas Gregor <dgregor@apple.com> Fix a longstanding (but previously unknown) bug in the lazy
deserialization of precompiled headers, where the deserialization of
the source location entry for a buffer (e.g., macro instantiation
scratch space) would overwrite a one-element FileID cache in the
source manager. When tickled at the wrong time, we would return the
wrong decomposed source location and eventually cause c-index-test to
crash.

Found by dumb luck. It's amazing this hasn't shown up before.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98940 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
09a177cc57f4ce38e0d2be4ba7bae440e6320a8f 17-Mar-2010 Douglas Gregor <doug.gregor@gmail.com> Check the inode in addition to size and modification time to determine
whether a file has changed since it was originally read.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98726 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
0419a2375f16821e40ea48e5437fefe6a803f26d 17-Mar-2010 Douglas Gregor <dgregor@apple.com> Check the inode in addition to size and modification time to determine
whether a file has changed since it was originally read.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98726 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
1071378ede1eeb42f1230ebc65fcbeb22418a518 17-Mar-2010 Douglas Gregor <doug.gregor@gmail.com> Use a simple diagnostic (file modified) when we detect that a file has
changed, rather than trying to point out how it changed. The "why"
doesn't matter.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98725 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
e39b600582f9183e3301c3e6cb48b76ac5087119 17-Mar-2010 Douglas Gregor <dgregor@apple.com> Use a simple diagnostic (file modified) when we detect that a file has
changed, rather than trying to point out how it changed. The "why"
doesn't matter.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98725 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
147177da525a09e65f2d1f5b7b7ee51311cc66b0 16-Mar-2010 Douglas Gregor <doug.gregor@gmail.com> Teach SourceManager's content cache to keep track of whether its
buffer was invalid when it was created, and use that bit to always set
the "Invalid" flag according to whether the buffer is invalid. This
ensures that all accesses to an invalid buffer are marked invalid,
improving recovery.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98690 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
c815108d08b0417c6f1104e7df70dc5278839406 16-Mar-2010 Douglas Gregor <dgregor@apple.com> Teach SourceManager's content cache to keep track of whether its
buffer was invalid when it was created, and use that bit to always set
the "Invalid" flag according to whether the buffer is invalid. This
ensures that all accesses to an invalid buffer are marked invalid,
improving recovery.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98690 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
8884f1af9c258316326940a81250f88600676e59 16-Mar-2010 Douglas Gregor <doug.gregor@gmail.com> Update get*LineNumber() and get*ColumnNumber() functions to pass the
Invalid bit through; there are no safety-critical callers of these
functions.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98674 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
64e462dff03492c586be0349ec6aa3ad5cd92720 16-Mar-2010 Douglas Gregor <dgregor@apple.com> Update get*LineNumber() and get*ColumnNumber() functions to pass the
Invalid bit through; there are no safety-critical callers of these
functions.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98674 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
3d5c30c7576189dbe10bf1ca86dca307b4b04319 16-Mar-2010 Douglas Gregor <doug.gregor@gmail.com> Audit all callers of SourceManager::getCharacterData(); update some of
them to recover more gracefully on failure.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98672 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
a543016fe07030f695d6d56fd22c8c8da617e0d7 16-Mar-2010 Douglas Gregor <dgregor@apple.com> Audit all callers of SourceManager::getCharacterData(); update some of
them to recover more gracefully on failure.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98672 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
2c3e2821703459a03c37e258dd2d70fdf87efbc2 16-Mar-2010 Douglas Gregor <doug.gregor@gmail.com> Audit all getBuffer() callers (for both the FullSourceLoc and
SourceManager versions), updating those callers that need to recover
gracefully from failure.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98665 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
ourceManager.cpp
aae58b0c3efb5fa9f97a3e4b1c1a2d31077efe5b 16-Mar-2010 Douglas Gregor <dgregor@apple.com> Audit all getBuffer() callers (for both the FullSourceLoc and
SourceManager versions), updating those callers that need to recover
gracefully from failure.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98665 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
ourceManager.cpp
12f7326e2cbd006859816b79326e9e665f902213 16-Mar-2010 Benjamin Kramer <benny.kra@googlemail.com> Switch another function to StringRef instead of char pointer pairs.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98631 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
ceafc4b63599d14f0b5b10ff92e22bf242682dce 16-Mar-2010 Benjamin Kramer <benny.kra@googlemail.com> Switch another function to StringRef instead of char pointer pairs.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98631 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
5fb9b355e182d1ec046cdc061855d3ffb691e967 16-Mar-2010 Benjamin Kramer <benny.kra@googlemail.com> Let SourceManager::getBufferData return StringRef instead of a pair of two const char*.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98630 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
f6ac97b101c8840efa92bf29166077ce4049e293 16-Mar-2010 Benjamin Kramer <benny.kra@googlemail.com> Let SourceManager::getBufferData return StringRef instead of a pair of two const char*.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98630 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
1226abb6ed8d1f9afad889d618b79fb3c7bd4e9e 16-Mar-2010 Douglas Gregor <doug.gregor@gmail.com> Introduce optional "Invalid" parameters to routines that invoke the
SourceManager's getBuffer() and, therefore, could fail, along with
Preprocessor::getSpelling(). Use the Invalid parameters in the literal
parsers (string, floating point, integral, character) to make them
robust against errors that stem from, e.g., PCH files that are not
consistent with the underlying file system.

I still need to audit every use caller to all of these routines, to
determine which ones need specific handling of error conditions.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98608 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
50f6af7a6d6951a63f3da7d4c5a7d3965bf73b63 16-Mar-2010 Douglas Gregor <dgregor@apple.com> Introduce optional "Invalid" parameters to routines that invoke the
SourceManager's getBuffer() and, therefore, could fail, along with
Preprocessor::getSpelling(). Use the Invalid parameters in the literal
parsers (string, floating point, integral, character) to make them
robust against errors that stem from, e.g., PCH files that are not
consistent with the underlying file system.

I still need to audit every use caller to all of these routines, to
determine which ones need specific handling of error conditions.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98608 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
331eb3639454b3470a666553cd798f32a42a9c2e 16-Mar-2010 Douglas Gregor <doug.gregor@gmail.com> Use SourceManager's Diagnostic object for all file-reading errors,
simplifying the SourceManager interfaces somewhat.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98598 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
36c35ba0aca641e60e5dbee8efbc620c08b9bd61 16-Mar-2010 Douglas Gregor <dgregor@apple.com> Use SourceManager's Diagnostic object for all file-reading errors,
simplifying the SourceManager interfaces somewhat.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98598 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
40e0148c249727d064c9aef48aca7c896c8d21c1 16-Mar-2010 Douglas Gregor <doug.gregor@gmail.com> Give SourceManager a Diagnostic object with which to report errors,
and start simplifying the interfaces in SourceManager that can fail.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98594 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
f715ca12bfc9fddfde75f98a197424434428b821 16-Mar-2010 Douglas Gregor <dgregor@apple.com> Give SourceManager a Diagnostic object with which to report errors,
and start simplifying the interfaces in SourceManager that can fail.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98594 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
85f83d2cdd8957b595f183be73a73b5a3940e07f 16-Mar-2010 Douglas Gregor <doug.gregor@gmail.com> Add some <cstdio> includes to unbreak the buildbots

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98591 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
f9b0a58a103784495309543dce4469e44861b4cc 16-Mar-2010 Douglas Gregor <dgregor@apple.com> Add some <cstdio> includes to unbreak the buildbots

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98591 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
72898076bbfe83ff42f2c478fb10e5391948123b 15-Mar-2010 Douglas Gregor <doug.gregor@gmail.com> Introduce a new BufferResult class to act as the return type of
SourceManager's getBuffer() (and similar) operations. This abstract
can be used to force callers to cope with errors in getBuffer(), such
as missing files and changed files. Fix a bunch of callers to use the
new interface.

Add some very basic checks for file consistency (file size,
modification time) into ContentCache::getBuffer(), although these
checks don't help much until we've updated the main callers (e.g.,
SourceManager::getSpelling()).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98585 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
aea67dbd653a2dd6dd5cc2159279e81e855b2482 15-Mar-2010 Douglas Gregor <dgregor@apple.com> Introduce a new BufferResult class to act as the return type of
SourceManager's getBuffer() (and similar) operations. This abstract
can be used to force callers to cope with errors in getBuffer(), such
as missing files and changed files. Fix a bunch of callers to use the
new interface.

Add some very basic checks for file consistency (file size,
modification time) into ContentCache::getBuffer(), although these
checks don't help much until we've updated the main callers (e.g.,
SourceManager::getSpelling()).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98585 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
9f72444851967d26c3ef21db31b67a3b80a01afb 12-Mar-2010 Kovarththanan Rajaratnam <kovarththanan.rajaratnam@gmail.com> Reintroduce r98340 and r98341 now without copy/paste errors.

Thanks to Ben for pointing this out.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98345 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
50acf24b717a05a509e340f0ad0556de68fa4d5d 12-Mar-2010 Kovarththanan Rajaratnam <kovarththanan.rajaratnam@gmail.com> Reintroduce r98340 and r98341 now without copy/paste errors.

Thanks to Ben for pointing this out.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98345 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
92d3b8ffef799318a6093b58dd9d06c615a6bed7 12-Mar-2010 Kovarththanan Rajaratnam <kovarththanan.rajaratnam@gmail.com> Back out r98340 abd r98341

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98344 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
6561adf16dd7d9c17749b15e0e062a23ed979853 12-Mar-2010 Kovarththanan Rajaratnam <kovarththanan.rajaratnam@gmail.com> Back out r98340 abd r98341

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98344 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
3a16d78a9bbed6e29c8f04d722b3c4a9588e7351 12-Mar-2010 Nuno Lopes <nunoplopes@sapo.pt> fix PR6584: __SSE3__ not defined with -mss3

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98342 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
33d3bcac0b53829dc9879d1d3ed95b3a1ef86687 12-Mar-2010 Nuno Lopes <nunoplopes@sapo.pt> fix PR6584: __SSE3__ not defined with -mss3

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98342 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
aa8b510845dd125fb890de5a9f639fc05c44b208 12-Mar-2010 Kovarththanan Rajaratnam <kovarththanan.rajaratnam@gmail.com> Switch parameter order for consistency (no functionality change)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98341 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
f9bc11085746567517ecbcd72ab214a8f16d97db 12-Mar-2010 Kovarththanan Rajaratnam <kovarththanan.rajaratnam@gmail.com> Switch parameter order for consistency (no functionality change)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98341 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
476e9d8e9af59ea6fc4a6b6b9b419e43367aa81f 12-Mar-2010 Kovarththanan Rajaratnam <kovarththanan.rajaratnam@gmail.com> Add keywords using StringRef

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98340 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
362f6f2d57794bf5d1512c285f73c122562ce7f5 12-Mar-2010 Kovarththanan Rajaratnam <kovarththanan.rajaratnam@gmail.com> Add keywords using StringRef

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98340 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
8b5ca0d258b0dad88a220822ff35cc1b92ffdf74 10-Mar-2010 Ted Kremenek <kremenek@apple.com> Fix -Wsign-compare warning reported by clang++.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98170 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
8515fbf1a1b89e9750ebf3e2ee2c9440424befee 10-Mar-2010 Ted Kremenek <kremenek@apple.com> Fix -Wsign-compare warning reported by clang++.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98170 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
2c02647980f16172a25117f6aafeacbf8fb320d7 06-Mar-2010 Chris Lattner <sabre@nondot.org> add mblaze target support, patch by Wesley Peck!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97890 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
9cbeb63901dbf64acfc489d297b513bf9ff6fd86 06-Mar-2010 Chris Lattner <sabre@nondot.org> add mblaze target support, patch by Wesley Peck!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97890 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
647e39fc5f8b4898e54aba2c0fe2fecaf2c97afa 05-Mar-2010 Benjamin Kramer <benny.kra@googlemail.com> Make sure the raw_string_ostream gets flushed so we don't accidentally return an empty string.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97809 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
940f6465483a83fe856957a10592f52fdde0a7cd 05-Mar-2010 Benjamin Kramer <benny.kra@googlemail.com> Make sure the raw_string_ostream gets flushed so we don't accidentally return an empty string.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97809 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
8a1db93ddce4c6d7c81ce433b512806f3ed4f5b1 04-Mar-2010 Chris Lattner <sabre@nondot.org> add TCE target support, patch by Pekka J!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97746 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
3a47c4e0a3e8d13ee4fb06cc3a98f9cfa9982400 04-Mar-2010 Chris Lattner <sabre@nondot.org> add TCE target support, patch by Pekka J!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97746 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
d794f78d414f654885a02d6672ba59b6ed0484ba 04-Mar-2010 Eric Christopher <echristo@apple.com> Add in disabled case as well.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97716 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
d41b4ec5803110a164ad576f4d7a374ed41d786f 04-Mar-2010 Eric Christopher <echristo@apple.com> Add in disabled case as well.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97716 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
850e20192ea602882f196f53457f9073a0bba1f4 04-Mar-2010 Eric Christopher <echristo@apple.com> Add in -msse4.1 and -msse4.2 options and continuing a rather
hacky solution for translating. Expanded on comment explaining
the hack a bit.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97714 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
d39ebe2d2a24a331b89465191dce061fd9c6b5e4 04-Mar-2010 Eric Christopher <echristo@apple.com> Add in -msse4.1 and -msse4.2 options and continuing a rather
hacky solution for translating. Expanded on comment explaining
the hack a bit.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97714 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
b45275280c16fb078d3eb2826a829a75eeb1fc89 03-Mar-2010 Chris Lattner <sabre@nondot.org> add framework for ARM builtins, Patch by Edmund Grimley Evans!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97656 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
2752c0137d95aa2f4ee1cdff4b564bac842e041b 03-Mar-2010 Chris Lattner <sabre@nondot.org> add framework for ARM builtins, Patch by Edmund Grimley Evans!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97656 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
61818d864df318f35ae72694c79a1c557521c369 03-Mar-2010 Ted Kremenek <kremenek@apple.com> Use SVN_REVISION, not SVN_VERSION.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97625 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
ec5008807b03b5ede250d5ecc5bf5bc0aba032ef 03-Mar-2010 Ted Kremenek <kremenek@apple.com> Use SVN_REVISION, not SVN_VERSION.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97625 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
3b524978e22bba4e28aff0b644d0967294b26aef 03-Mar-2010 Ted Kremenek <kremenek@apple.com> Make getClangRevision() check that SVN_VERSION is an empty string
(even if it is defined). This fixes the issue of this function
returning '0' when SVN_VERSION is defined to be "".

Fixes: <rdar://problem/7663667>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97620 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
971cc48dcae6719dc9e4e555fc4fcae8afc680fc 03-Mar-2010 Ted Kremenek <kremenek@apple.com> Make getClangRevision() check that SVN_VERSION is an empty string
(even if it is defined). This fixes the issue of this function
returning '0' when SVN_VERSION is defined to be "".

Fixes: <rdar://problem/7663667>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97620 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
03cc0effa96475ca77bfb6d97dfa539cd45d36da 02-Mar-2010 Eric Christopher <echristo@apple.com> Add in some more MIPS command line options.

Patch by Oleksandr Tymoshenko!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97544 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
ed734737d5af31906e30e537d4a41c760ddcfc59 02-Mar-2010 Eric Christopher <echristo@apple.com> Add in some more MIPS command line options.

Patch by Oleksandr Tymoshenko!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97544 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
b3f69bd589230e8d0f42fb9472281607ee292c9d 27-Feb-2010 Douglas Gregor <doug.gregor@gmail.com> Robustify SourceManager::getLocation(), so that it returns an
end-of-line source location when given a column number beyond the
length of the line, or an end-of-file source location when given a
line number beyond the length of the file. Previously, we would return
an invalid location.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97299 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
d1eabfb15c87837c57d1eb658d75a1f48d6fd5ed 27-Feb-2010 Douglas Gregor <dgregor@apple.com> Robustify SourceManager::getLocation(), so that it returns an
end-of-line source location when given a column number beyond the
length of the line, or an end-of-file source location when given a
line number beyond the length of the file. Previously, we would return
an invalid location.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97299 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
573e99db08ff3a00883726baa34b9c088e29d53d 19-Feb-2010 Douglas Gregor <doug.gregor@gmail.com> Use a little binary header in serialized diagnostics to help the deserializer skip over noise in the stream

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96641 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
b9c903bc7c11adf86b1f1e68ad35cd49703dc654 19-Feb-2010 Douglas Gregor <dgregor@apple.com> Use a little binary header in serialized diagnostics to help the deserializer skip over noise in the stream

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96641 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
7f71c68f01b00d5335c53eccc115b1223cb573b5 19-Feb-2010 Douglas Gregor <doug.gregor@gmail.com> Re-apply my diagnostics-capture patch for CIndex, with some tweaks to
try to address the msvc failures.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96624 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
0a812cf707da15dadd19fdeb0178b9707f4e01a6 19-Feb-2010 Douglas Gregor <dgregor@apple.com> Re-apply my diagnostics-capture patch for CIndex, with some tweaks to
try to address the msvc failures.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96624 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
8a981127d8f98521c9275a059fee3461e3be0f92 18-Feb-2010 Douglas Gregor <doug.gregor@gmail.com> Rework how CIndex handles diagnostics. Rather than using a callback,
we attach diagnostics to translation units and code-completion
results, so they can be queried at any time.

To facilitate this, the new StoredDiagnostic class stores a diagnostic
in a serializable/deserializable form, and ASTUnit knows how to
capture diagnostics in this stored form. CIndex's CXDiagnostic is a
thin wrapper around StoredDiagnostic, providing a C interface to
stored or de-serialized diagnostics.

I've XFAIL'd one test case temporarily, because currently we end up
storing diagnostics in an ASTUnit that's never returned to the user
(because it contains errors). I'll introduce a temporary fix for this
soon; the real fix will be to allow us to return and query invalid ASTs.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96592 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
a88084b78fd4ca5d3d858c14b02414f8cc399f02 18-Feb-2010 Douglas Gregor <dgregor@apple.com> Rework how CIndex handles diagnostics. Rather than using a callback,
we attach diagnostics to translation units and code-completion
results, so they can be queried at any time.

To facilitate this, the new StoredDiagnostic class stores a diagnostic
in a serializable/deserializable form, and ASTUnit knows how to
capture diagnostics in this stored form. CIndex's CXDiagnostic is a
thin wrapper around StoredDiagnostic, providing a C interface to
stored or de-serialized diagnostics.

I've XFAIL'd one test case temporarily, because currently we end up
storing diagnostics in an ASTUnit that's never returned to the user
(because it contains errors). I'll introduce a temporary fix for this
soon; the real fix will be to allow us to return and query invalid ASTs.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96592 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
f803041305058ac5b65674e81c3ae490df472c09 16-Feb-2010 Chris Lattner <sabre@nondot.org> add freebsd/ppc[64] support, patch by Nathan Whitehorn, PR6318


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96362 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
e03ae30bc26bbcb0cddc688e3f35a97558118a5f 16-Feb-2010 Chris Lattner <sabre@nondot.org> add freebsd/ppc[64] support, patch by Nathan Whitehorn, PR6318


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96362 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
2362b4caf5c0fff3968ba4f8190ebaad022e172e 16-Feb-2010 Sanjiv Gupta <sanjiv.gupta@microchip.com> Re-applying 96173. Looks like finally I got the test case right.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96321 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
fcd302b5e44e21fce82b5d78133c5c8ba6ed0727 16-Feb-2010 Sanjiv Gupta <sanjiv.gupta@microchip.com> Re-applying 96173. Looks like finally I got the test case right.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96321 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
ac2946d5627eb3b7064ff966a072a4ca00ca8458 15-Feb-2010 Sanjiv Gupta <sanjiv.gupta@microchip.com> reverting back 96242 as it still causes a test failure.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96244 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
5591a6b5a8dc1498cf997a4f748a5fb035107be4 15-Feb-2010 Sanjiv Gupta <sanjiv.gupta@microchip.com> reverting back 96242 as it still causes a test failure.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96244 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
522751c881f976615c73169d52c70c5819f41820 15-Feb-2010 Sanjiv Gupta <sanjiv.gupta@microchip.com> Re-applying 96173 with corresponding changes in test.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96242 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
aed63cbe10bbef09e2bb75592760b7dc8007bbfe 15-Feb-2010 Sanjiv Gupta <sanjiv.gupta@microchip.com> Re-applying 96173 with corresponding changes in test.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96242 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
9672e6cd0a4910529ba25ce3355f9e60222fa8a4 14-Feb-2010 Chris Lattner <sabre@nondot.org> temporarily revert 96173, it is causing test failures.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96176 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
94baf7fc056f271d1be27c31265431d2e3e5b6c3 14-Feb-2010 Chris Lattner <sabre@nondot.org> temporarily revert 96173, it is causing test failures.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96176 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f06ac4969f809c6fecb81718dae764f61fe87f7b 14-Feb-2010 Sanjiv Gupta <sanjiv.gupta@microchip.com> renamed pic16 specifiic macros.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96173 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
a5999e2a51b17b3ec53771d4e9b4a2eb505d6551 14-Feb-2010 Sanjiv Gupta <sanjiv.gupta@microchip.com> renamed pic16 specifiic macros.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96173 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
0574c3f56f2693b324c70abaa8dcb22623d4fa32 13-Feb-2010 Ted Kremenek <kremenek@apple.com> Fix bug I introduced with assinging a temporary to a StringRef.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96041 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
974be4d50a95317a85b111855946f5aa4bd15887 13-Feb-2010 Ted Kremenek <kremenek@apple.com> Fix bug I introduced with assinging a temporary to a StringRef.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96041 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
93f9b324137514b4fd95d28a95e356190488a37f 12-Feb-2010 Ted Kremenek <kremenek@apple.com> Make the following functions thread-safe but having them return an std::string that is reconstructed
every time they are called:

getClangRevision()
getClangFullRepositoryVersion()
getClangFullVersion()

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96033 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
a2a9d6e4e5b6001b86b7dfc5db1ea296ce29a3d3 12-Feb-2010 Ted Kremenek <kremenek@apple.com> Make the following functions thread-safe but having them return an std::string that is reconstructed
every time they are called:

getClangRevision()
getClangFullRepositoryVersion()
getClangFullVersion()

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96033 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
2ebbae57e73b56bd2b1d19ffd28a30038f41e064 12-Feb-2010 Chris Lattner <sabre@nondot.org> fix a bug in SourceManager::getInstantiationLocSlowCase, where
we'd add an offset from the spelling location space to the
instantiation location, which doesn't make sense and would
lead up to the text diagnostics crashing when presented with
non-sensical locations.

This fixes rdar://7597492, a crash on 255.vortex.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96004 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
a5c6c5814b4c9f562247d2182eb59ccad128dbde 12-Feb-2010 Chris Lattner <sabre@nondot.org> fix a bug in SourceManager::getInstantiationLocSlowCase, where
we'd add an offset from the spelling location space to the
instantiation location, which doesn't make sense and would
lead up to the text diagnostics crashing when presented with
non-sensical locations.

This fixes rdar://7597492, a crash on 255.vortex.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96004 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
5f35a15dc93999df76af48e7b694be1888b6177a 11-Feb-2010 John McCall <rjmccall@apple.com> Suppress warnings if their instantiation location is in a system header, not
their spelling location. This prevents warnings from being swallowed just
because the caret is on the first parenthesis in, say, NULL.

This is an experiment; the risk is that there might be a substantial number
of system headers which #define symbols to expressions which inherently cause
warnings. My theory is that that's rare enough that it can be worked
around case-by-case, and that producing useful warnings around NULL is worth
it. But I'm willing to accept that I might be empirically wrong.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95870 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
779cf424a153ca92d501af87cb50c7a701514a61 11-Feb-2010 John McCall <rjmccall@apple.com> Suppress warnings if their instantiation location is in a system header, not
their spelling location. This prevents warnings from being swallowed just
because the caret is on the first parenthesis in, say, NULL.

This is an experiment; the risk is that there might be a substantial number
of system headers which #define symbols to expressions which inherently cause
warnings. My theory is that that's rare enough that it can be worked
around case-by-case, and that producing useful warnings around NULL is worth
it. But I'm willing to accept that I might be empirically wrong.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95870 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
f8fd82ba49827db0f6a6ba00c55a7b56b12a19fa 10-Feb-2010 Shih-wei Liao <sliao@google.com> Check in LLVM r95781.
uiltins.cpp
MakeLists.txt
onvertUTF.c
iagnostic.cpp
ileManager.cpp
dentifierTable.cpp
akefile
ourceLocation.cpp
ourceManager.cpp
argetInfo.cpp
argets.cpp
okenKinds.cpp
ersion.cpp
21f7bcaa607ffc73866f7b0c2141f449c2943bbf 10-Feb-2010 Daniel Dunbar <daniel@zuster.org> Switch to using -fsjlj-exceptions instead of hard-coding it. Notably, this fixes
calls to the UnwindResumeOrRethrow function for C++/Obj-C exception handling,
for Darwin ARM.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95787 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
b2987d159a88ab0ee2e40c884eb4d77b42ab89b6 10-Feb-2010 Daniel Dunbar <daniel@zuster.org> Switch to using -fsjlj-exceptions instead of hard-coding it. Notably, this fixes
calls to the UnwindResumeOrRethrow function for C++/Obj-C exception handling,
for Darwin ARM.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95787 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
438d00a23413bb5e63afa12a975fd2f2e6216293 05-Feb-2010 John Thompson <john.thompson.jtsoftware@gmail.com> First stage of adding AltiVec support

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95335 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
82287d19ded35248c4ce6a425ce74116a13ce44e 05-Feb-2010 John Thompson <John.Thompson.JTSoftware@gmail.com> First stage of adding AltiVec support

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95335 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
50349fac9368c25c7ac0ecd28009cb11051129e2 01-Feb-2010 Chris Lattner <sabre@nondot.org> Don't explicitly force utf strings into the __TEXT,__ustring
by setting the section of the generated global. This is an
optimization done by the code generator, and the code being
removed didn't handle the case when the string contained an
embedded nul (which the code generator does correctly
handle). This is rdar://7589850



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95003 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
b9f709665a6fe9da5c67d0431de2e63c55dd5322 01-Feb-2010 Chris Lattner <sabre@nondot.org> Don't explicitly force utf strings into the __TEXT,__ustring
by setting the section of the generated global. This is an
optimization done by the code generator, and the code being
removed didn't handle the case when the string contained an
embedded nul (which the code generator does correctly
handle). This is rdar://7589850



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95003 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
eaa3c705462edb79fdaa407ed407abe8b13f51e9 30-Jan-2010 Benjamin Kramer <benny.kra@googlemail.com> Simplify FreeBSD version parsing.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94919 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
3bb6530019990dba3e0269a204a5511947db01b3 30-Jan-2010 Benjamin Kramer <benny.kra@googlemail.com> Simplify FreeBSD version parsing.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94919 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
4a8f819bdd8f3af76f47146ffdc53a169a96a09f 30-Jan-2010 Anders Carlsson <andersca@mac.com> Yay for more StringRefs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94917 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
83c021c6d33aa173cf1a6e3bc61006dabb042703 30-Jan-2010 Anders Carlsson <andersca@mac.com> Yay for more StringRefs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94917 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
41f80b5a55bdd4d008bd293b77efc8224182ed35 30-Jan-2010 Anders Carlsson <andersca@mac.com> StringRef-ize the TargetInfo::ConstraintInfo constructor.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94916 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f959fb5fb82ae2cbdf8635d734613a01818fb7bf 30-Jan-2010 Anders Carlsson <andersca@mac.com> StringRef-ize the TargetInfo::ConstraintInfo constructor.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94916 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
dbcf41af786a952a096e4ace0ecbf3ed5f04091b 30-Jan-2010 Benjamin Kramer <benny.kra@googlemail.com> We don't need to place 0 in the URL string now that we return a StringRef.

- URL can go into read only memory now.
- Compilers will fold away all the strstr calls.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94887 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
e242d5f5fae8b16cb2d54b9dbb60855d4c67e67d 30-Jan-2010 Benjamin Kramer <benny.kra@googlemail.com> We don't need to place 0 in the URL string now that we return a StringRef.

- URL can go into read only memory now.
- Compilers will fold away all the strstr calls.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94887 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
2a6630a33afb93960d28e6e9672f16c40278d39c 30-Jan-2010 Anton Korobeynikov <asl@math.spbu.ru> Fix alignment for msp430 integer types.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94879 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
09f52a696e97d5efc933ed413ddb01d8c537417c 30-Jan-2010 Anton Korobeynikov <asl@math.spbu.ru> Fix alignment for msp430 integer types.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94879 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
ca5a30b4e4cf7676dee95764d774ec9700f42825 28-Jan-2010 Douglas Gregor <doug.gregor@gmail.com> Introduce serialization and deserialization of diagnostic information
so that CIndex can report diagnostics through the normal mechanisms
even when executing Clang in a separate process. This applies both
when performing code completion and when using ASTs as an intermediary
for clang_createTranslationUnitFromSourceFile().

The serialized format is not perfect at the moment, because it does
not encapsulate macro-instantiation information. Instead, it maps all
source locations back to the instantiation location. However, it does
maintain source-range and fix-it information. To get perfect fidelity
from the serialized format would require serializing a large chunk of
the source manager; at present, it isn't clear if this code will live
long enough for that to matter.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94740 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
d93256e55673a17d18543397ec462416acb13792 28-Jan-2010 Douglas Gregor <dgregor@apple.com> Introduce serialization and deserialization of diagnostic information
so that CIndex can report diagnostics through the normal mechanisms
even when executing Clang in a separate process. This applies both
when performing code completion and when using ASTs as an intermediary
for clang_createTranslationUnitFromSourceFile().

The serialized format is not perfect at the moment, because it does
not encapsulate macro-instantiation information. Instead, it maps all
source locations back to the instantiation location. However, it does
maintain source-range and fix-it information. To get perfect fidelity
from the serialized format would require serializing a large chunk of
the source manager; at present, it isn't clear if this code will live
long enough for that to matter.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94740 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
da94a7787ee1953267e152a44a320c773b9df9a6 27-Jan-2010 Daniel Dunbar <daniel@zuster.org> ARM/APCS: Fix alignment of long double.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94685 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
d410fa259e485b751258e07e750cf45cad01e7ea 27-Jan-2010 Daniel Dunbar <daniel@zuster.org> ARM/APCS: Fix alignment of long double.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94685 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
e5e222fd8be7f3af7b18b0aeb8e76895b6d01c24 27-Jan-2010 Anders Carlsson <andersca@mac.com> Add support for 3dnow and 3dnowa, and define the target macros accordingly. (This is needed in order to build Qt).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94658 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
9b0fb629fd12bc772a32fa2cb693b06fe5863316 27-Jan-2010 Anders Carlsson <andersca@mac.com> Add support for 3dnow and 3dnowa, and define the target macros accordingly. (This is needed in order to build Qt).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94658 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
eab96a269b9c8192426790b9fd0af0d03ea2b6b4 26-Jan-2010 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Stuff iPhoneOS into environment portion of the (llvm/clang) triple instead of keying off architecture. Also, fix version define to properly include the revision/micro component of the version number.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94487 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
21ae3196c9677a79523d294f9a62a4788ba40694 26-Jan-2010 Daniel Dunbar <daniel@zuster.org> Driver/Darwin: Stuff iPhoneOS into environment portion of the (llvm/clang) triple instead of keying off architecture. Also, fix version define to properly include the revision/micro component of the version number.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94487 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f4b34a030729fff07d8a6501bfabbbd097c15045 24-Jan-2010 Chris Lattner <sabre@nondot.org> -fno-rtti is now the default.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94379 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
0bb46d285cb2bb0f582d0935f58f57a9be8bf2cd 24-Jan-2010 Chris Lattner <sabre@nondot.org> -fno-rtti is now the default.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94379 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
7e85de74e7913777cb5fd05b6cf48c8f9bf2cb13 23-Jan-2010 Ted Kremenek <kremenek@apple.com> Rename getClangFullVendorVersion() to getClangFullVersion().


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94273 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
a18f1b88a7ef3d2c944bb1d3b6586a2860ce2baa 23-Jan-2010 Ted Kremenek <kremenek@apple.com> Rename getClangFullVendorVersion() to getClangFullVersion().


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94273 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
b9aa98e712bdeb8c9b02ce49cd70d4b1312b51c3 22-Jan-2010 Ted Kremenek <kremenek@apple.com> Add 'clang_getClangVersion()' function to CIndex. This exposes the full Clang version string through the CIndex API.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94242 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
04bb716aea8fd2372ac10b0c640cabc5e5caa615 22-Jan-2010 Ted Kremenek <kremenek@apple.com> Add 'clang_getClangVersion()' function to CIndex. This exposes the full Clang version string through the CIndex API.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94242 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
aeeeb1c615f2310a76519e54a267b938c8d0ea0a 22-Jan-2010 Ted Kremenek <kremenek@apple.com> Move version string generation (e.g., "clang 1.1 ...") to libBasic/Version.cpp, getClangFullVendorVersion().


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94235 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
ersion.cpp
3687a5d83f5deb4b70b0c8e522c455d546f40101 22-Jan-2010 Ted Kremenek <kremenek@apple.com> Move version string generation (e.g., "clang 1.1 ...") to libBasic/Version.cpp, getClangFullVendorVersion().


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94235 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
ersion.cpp
fe942e746bf1b4448c7aec9c8a611d5ecd31db4d 22-Jan-2010 Ted Kremenek <kremenek@apple.com> (1) Rename getClangSubversionRevision() to getClangRevision(), and
have it return a StringRef instead of an integer (to be more VCS
agnostic).

(2) Add getClangFullRepositoryVersion(), which contains an
amalgamation of the repository name and the revision.

(3) Change PCH to only emit the string returned by
getClangFullRepositoryVersion() instead of also emitting the value
of getClangSubversionRevision() (which has been removed). This is
functionally equivalent.

More cleanup to version string generation pending...



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94231 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
f7a96a39958b3f919f26764777eec948b43d74bc 22-Jan-2010 Ted Kremenek <kremenek@apple.com> (1) Rename getClangSubversionRevision() to getClangRevision(), and
have it return a StringRef instead of an integer (to be more VCS
agnostic).

(2) Add getClangFullRepositoryVersion(), which contains an
amalgamation of the repository name and the revision.

(3) Change PCH to only emit the string returned by
getClangFullRepositoryVersion() instead of also emitting the value
of getClangSubversionRevision() (which has been removed). This is
functionally equivalent.

More cleanup to version string generation pending...



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94231 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
ec04e5806acd9ea1fd9daea82595938db0813a2f 22-Jan-2010 Ted Kremenek <kremenek@apple.com> Rename getClangSubversionPath() -> getClangRepositoryPath() and have it return a StringRef.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94213 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
517e676b9e1524e39beeb47718822f2647801d1a 22-Jan-2010 Ted Kremenek <kremenek@apple.com> Rename getClangSubversionPath() -> getClangRepositoryPath() and have it return a StringRef.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94213 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
986874893059a44cefbad83d9940ec55d3abfe51 21-Jan-2010 Daniel Dunbar <daniel@zuster.org> Update to use llvm/utils/GetSourceVersion to detect version number, instead of
assuming SVN. This should be fixed to not necessarily be an integer.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94081 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
38474aa780b095259b21001d589fb9875de2619d 21-Jan-2010 Daniel Dunbar <daniel@zuster.org> Update to use llvm/utils/GetSourceVersion to detect version number, instead of
assuming SVN. This should be fixed to not necessarily be an integer.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94081 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
a088d5bd3141d05e8a9c4517c0d6f0cc1a0a3692 20-Jan-2010 Chandler Carruth <chandlerc@gmail.com> Move the MacroBuilder utilitiy to its own header. Update references.

Comments and/or improvements to the documentation are welcome.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93982 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
103b71c37a3c3a3da7128c1d0232a89b1e8d0d90 20-Jan-2010 Chandler Carruth <chandlerc@gmail.com> Move the MacroBuilder utilitiy to its own header. Update references.

Comments and/or improvements to the documentation are welcome.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93982 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
9f20f15a1a2717bfae6b65ed16aff8015bce1941 20-Jan-2010 Chandler Carruth <chandlerc@gmail.com> Actually remove the include that r93974 made unnecessary.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93975 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
b3ee1df5a4d0db50f862a123bc7b404db2c22ab8 20-Jan-2010 Chandler Carruth <chandlerc@gmail.com> Actually remove the include that r93974 made unnecessary.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93975 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
4a2249c4cdb53843cc7879a477a17f1c55d26970 14-Jan-2010 Anton Korobeynikov <asl@math.spbu.ru> long long is 64 bits on msp430

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93451 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
26d18c1e1888e1b612addae6524c7a476a394a2a 14-Jan-2010 Anton Korobeynikov <asl@math.spbu.ru> long long is 64 bits on msp430

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93451 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
90e699e5b4a012bb158ef710cbca5a7c7455d60e 14-Jan-2010 John McCall <rjmccall@apple.com> Pre-emptive bugfixes in the diagnostics code: allow arbitrary punctuation
characters to be escaped and implement a scan-forward function which
properly respects brace nesting.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93447 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
909c182f6a0e6169475eef6a71add14555b6162c 14-Jan-2010 John McCall <rjmccall@apple.com> Pre-emptive bugfixes in the diagnostics code: allow arbitrary punctuation
characters to be escaped and implement a scan-forward function which
properly respects brace nesting.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93447 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
933ef9aaf8e861f90cb46763a74a2c07e015bd15 14-Jan-2010 John McCall <rjmccall@apple.com> Add the %ordinal format modifier for turning '1' into '1st'. Hard-coded for
English right now; would not be impossible to grab a special format string
from the diagnostic pool and localize that way.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93390 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
3be16b7d9d0ab075461ed3498b4c01b30b517c0e 14-Jan-2010 John McCall <rjmccall@apple.com> Add the %ordinal format modifier for turning '1' into '1st'. Hard-coded for
English right now; would not be impossible to grab a special format string
from the diagnostic pool and localize that way.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93390 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
e3258ff3df5a57e7f689e45cafda86cbd92e813e 14-Jan-2010 John McCall <rjmccall@apple.com> Perform format-expansion on %select results.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93377 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
9f28614bf1a8387000d8df57a713fcf69e198145 14-Jan-2010 John McCall <rjmccall@apple.com> Perform format-expansion on %select results.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93377 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
bd51dca82ccb6b91a6e3bdf691a46e641d6a5e85 13-Jan-2010 Fariborz Jahanian <fjahanian@apple.com> Predefine __weak attribute when doing objective-c
rewriting for any target. (refixes radar 7530235).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93331 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
7d957472ef9a09048c03d8a11028536f908c18b9 13-Jan-2010 Fariborz Jahanian <fjahanian@apple.com> Predefine __weak attribute when doing objective-c
rewriting for any target. (refixes radar 7530235).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93331 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
83d4a601f0df94d704277b38d4ec120a4dd120c7 12-Jan-2010 Fariborz Jahanian <fjahanian@apple.com> Define __weak attribute for objective-c pointers in
win32 targets. Fixes radar 7530235. Daniel please review.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93246 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
453c1349a5dfb581d960df3e1bcd266d6ba68277 12-Jan-2010 Fariborz Jahanian <fjahanian@apple.com> Define __weak attribute for objective-c pointers in
win32 targets. Fixes radar 7530235. Daniel please review.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93246 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f8a85780f66daface2ab31f356ccc565df4d964c 09-Jan-2010 Benjamin Kramer <benny.kra@googlemail.com> Hopefully unbreak build with g++ >= 4.3.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93060 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
4872508294f41a4cb7150ffa9b20863bb00eef59 09-Jan-2010 Benjamin Kramer <benny.kra@googlemail.com> Hopefully unbreak build with g++ >= 4.3.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93060 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
9ffb1043390ed6ce9772df75ccf2362285d1672c 09-Jan-2010 Benjamin Kramer <benny.kra@googlemail.com> Use MacroBuilder for TargetDefines instead of std::vector.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93058 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
a99927774d07af9c6f0e1945531eadc910592945 09-Jan-2010 Benjamin Kramer <benny.kra@googlemail.com> Use MacroBuilder for TargetDefines instead of std::vector.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93058 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1eac081def1152b43873db3c3d6e5127787c5d14 09-Jan-2010 Chris Lattner <sabre@nondot.org> improve support for dragonfly, patch by Sascha Wildner!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93044 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
7a7ca281bcf50b34de1ce067d3c55879b81722ae 09-Jan-2010 Chris Lattner <sabre@nondot.org> improve support for dragonfly, patch by Sascha Wildner!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93044 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
ad1010d663754058b1fa43a0ebe47d27e195d661 23-Dec-2009 Nuno Lopes <nunoplopes@sapo.pt> move a few more symbols to .rodata/.data.rel.ro

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92012 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
2550d70aabb5f603e8f74cc5fb6a69a7af5b51f3 23-Dec-2009 Nuno Lopes <nunoplopes@sapo.pt> move a few more symbols to .rodata/.data.rel.ro

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92012 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
93e4192cb38df5789b0a531c916d6a5cd5d09ca9 23-Dec-2009 Chris Lattner <sabre@nondot.org> implement -W[no-]fatal-errors, patch by Christian Adåker!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91938 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
e663c720063fc9ff9f75bcbe38cd070c73c78b0e 23-Dec-2009 Chris Lattner <sabre@nondot.org> implement -W[no-]fatal-errors, patch by Christian Adåker!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91938 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
ef9576f201b745e9866c52f894e0ff78e2d65f55 22-Dec-2009 Daniel Dunbar <daniel@zuster.org> ARM: Remove a FIXME, it's not actually more complicated than that.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91924 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
5affb539acc91ecb47216ae817d17accbd80d6a2 22-Dec-2009 Daniel Dunbar <daniel@zuster.org> ARM: Remove a FIXME, it's not actually more complicated than that.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91924 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
96be2a493357b8172c880889a22d28dfdd0d1c78 22-Dec-2009 Daniel Dunbar <daniel@zuster.org> ARM: Honor -mfpu= and set __VFP_FP__ and __ARM_NEON__ "correctly".
- Correctly is in quotes, because we are following what I interpreted as GCC's
intent (which diverges from practice, naturally).
- Also, fix the arch define for arm1136jf-s.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91855 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
a91320b8af7143f7af4c0665ffa62a3b244c0bd9 22-Dec-2009 Daniel Dunbar <daniel@zuster.org> ARM: Honor -mfpu= and set __VFP_FP__ and __ARM_NEON__ "correctly".
- Correctly is in quotes, because we are following what I interpreted as GCC's
intent (which diverges from practice, naturally).
- Also, fix the arch define for arm1136jf-s.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91855 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
48075d80ceef950fedeb7c69bae4e358fad4c231 19-Dec-2009 Daniel Dunbar <daniel@zuster.org> ARM: Use front-end specific target features "soft-float" and "soft-float-abi" to communicate FP mode to target; __SOFTFP__ is set correctly now.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91755 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
97f52ac45369f6925b548404e61d511034c874ec 19-Dec-2009 Daniel Dunbar <daniel@zuster.org> ARM: Use front-end specific target features "soft-float" and "soft-float-abi" to communicate FP mode to target; __SOFTFP__ is set correctly now.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91755 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
4f7cd963882f72fd85bf5add260fc6427792d647 19-Dec-2009 Daniel Dunbar <daniel@zuster.org> Targets: Allow CreateTargetInfo to mutate the target features.
- In particular, it can claim features for itself instead of always passing them on to LLVM.
- This allows using the target features as a generic mechanism for passing target specific options to the TargetInfo instance, which may need them for initializing preprocessor defines, etc.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91753 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
b93292ab7f2b3d43a9e0ad6421f572d1f5a323b4 19-Dec-2009 Daniel Dunbar <daniel@zuster.org> Targets: Allow CreateTargetInfo to mutate the target features.
- In particular, it can claim features for itself instead of always passing them on to LLVM.
- This allows using the target features as a generic mechanism for passing target specific options to the TargetInfo instance, which may need them for initializing preprocessor defines, etc.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91753 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
186e7d34e95da4efc1152c3e22bb2ec515e0a2d1 19-Dec-2009 Anton Korobeynikov <asl@math.spbu.ru> Add f80 entry for windows targets

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91746 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
b381441bfb88ddd4a439f8305faaf6941321e5a4 19-Dec-2009 Anton Korobeynikov <asl@math.spbu.ru> Add f80 entry for windows targets

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91746 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
314713fd1dab8622d2eabc8b4ab01cd7bcbcd44a 19-Dec-2009 Anton Korobeynikov <asl@math.spbu.ru> Use proper alignment for i16/i32 on msp430. This fixes PR5815.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91739 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
5d7c2511a4d289bcbee6081a1804489234be0bfb 19-Dec-2009 Anton Korobeynikov <asl@math.spbu.ru> Use proper alignment for i16/i32 on msp430. This fixes PR5815.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91739 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
0a542ca3e2f4a85363612761a7d4f5fc38d9a879 18-Dec-2009 Daniel Dunbar <daniel@zuster.org> ARM: Define __thumb2__ for V6T2 targets and only define
__USING_SJLJ_EXCEPTIONS__ on Darwin.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91705 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
0791aa52b6af724f4844bec86312a4e61dd8379c 18-Dec-2009 Daniel Dunbar <daniel@zuster.org> ARM: Define __thumb2__ for V6T2 targets and only define
__USING_SJLJ_EXCEPTIONS__ on Darwin.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91705 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
33b4075302ac1cfe46a55330bf915a131346ccd8 18-Dec-2009 Daniel Dunbar <daniel@zuster.org> ARM: Fix predefines (__ARM_ARCH_..., __REGISTER_PREFIX).
- This should be done leveraging the backend, but I'm a little refactored
out. I'll fix it one day, I promise.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91700 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
eac7c53f16bc12bcd9baac756b6f9bb77b74b0ad 18-Dec-2009 Daniel Dunbar <daniel@zuster.org> ARM: Fix predefines (__ARM_ARCH_..., __REGISTER_PREFIX).
- This should be done leveraging the backend, but I'm a little refactored
out. I'll fix it one day, I promise.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91700 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
4c3bd3f9f8f1937c1faf2225d14a802f7ea017f0 18-Dec-2009 John Thompson <john.thompson.jtsoftware@gmail.com> Tweaks for PS3 target.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91685 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
ec387afb60cbc70f0cd00949fe55866729934fb7 18-Dec-2009 John Thompson <John.Thompson.JTSoftware@gmail.com> Tweaks for PS3 target.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91685 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
b35fc38c2db5a81a81d56ef4bf0f8f9a71ad3147 18-Dec-2009 John Thompson <john.thompson.jtsoftware@gmail.com> Removing trailing directory separator, to make stat work

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91684 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
9a6ac540bab63380a4a78d8fad87f23c50878685 18-Dec-2009 John Thompson <John.Thompson.JTSoftware@gmail.com> Removing trailing directory separator, to make stat work

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91684 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
3b0f89abcd963f1637a6982befef474d7c5303fc 16-Dec-2009 Nuno Lopes <nunoplopes@sapo.pt> fix PR5689: add support for 'o' and 'V' asm input operands

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91540 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
aa8e36108ff523e3a8b8a28fa9d95a9f1dcf0732 16-Dec-2009 Nuno Lopes <nunoplopes@sapo.pt> fix PR5689: add support for 'o' and 'V' asm input operands

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91540 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
608af42a97f5ed737e3cd25485a779f8af1577cb 11-Dec-2009 Daniel Dunbar <daniel@zuster.org> FileManager: Do not cache failed stats, it is easy to construct common
inconsistent situations if we do, and they are not important for PCH performance
(which currently only needs the stats to construct the initial FileManager
entries).
- No test case, sorry, the machinations are too involved.

This occurs when, for example, the build makes a PCH file and has a header map
or a -I for a directory that does not yet exist. It is possible we will cache
the negative stat on that directory, and then in the build we will never find
header files inside that dir.

For PCH we don't need these stats anyway for performance, so this also makes PCH
files smaller w/ no loss. I hope to eventually eliminate the stat cache
entirely.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91082 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
475ddb4547ce35706ce1ff54b14bdcfdc51954c2 11-Dec-2009 Daniel Dunbar <daniel@zuster.org> FileManager: Do not cache failed stats, it is easy to construct common
inconsistent situations if we do, and they are not important for PCH performance
(which currently only needs the stats to construct the initial FileManager
entries).
- No test case, sorry, the machinations are too involved.

This occurs when, for example, the build makes a PCH file and has a header map
or a -I for a directory that does not yet exist. It is possible we will cache
the negative stat on that directory, and then in the build we will never find
header files inside that dir.

For PCH we don't need these stats anyway for performance, so this also makes PCH
files smaller w/ no loss. I hope to eventually eliminate the stat cache
entirely.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91082 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
59fecd133383ecf64d027ed9a8ed1fc9c65b7460 06-Dec-2009 Daniel Dunbar <daniel@zuster.org> Add a pretty horrible hack to prevent clang from crashing with inconsistent PCH
files.
- The issue is that PCH uses a stat cache, which may reference files which have
been deleted or moved. In such cases ContentCache::getBuffer was returning 0
but most clients are incapable of dealing with this (i.e., they don't).

For the time being, resolve this issue by just making up some invalid file
contents and. Eventually we should detect that we are in an inconsistent
situation and error out with a nice message that the PCH is out of date.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90699 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
21a8bed504a95df019771ab1a3dc9ecccfd9cfaa 06-Dec-2009 Daniel Dunbar <daniel@zuster.org> Add a pretty horrible hack to prevent clang from crashing with inconsistent PCH
files.
- The issue is that PCH uses a stat cache, which may reference files which have
been deleted or moved. In such cases ContentCache::getBuffer was returning 0
but most clients are incapable of dealing with this (i.e., they don't).

For the time being, resolve this issue by just making up some invalid file
contents and. Eventually we should detect that we are in an inconsistent
situation and error out with a nice message that the PCH is out of date.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90699 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
486e9845f0f2f6b73f45e5015a202201ac2fd489 05-Dec-2009 Steve Naroff <snaroff@apple.com> Remove 'LangOpts' from Diagnostic (added in http://llvm.org/viewvc/llvm-project?view=rev&revision=90642).

Simply use the 'LangOpts' member already present in TextDiagnosticPrinter.

Sorry for the confusion!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90664 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
0304c6cb7fd3b2137213858b1e5ae85ef3f4f8e2 05-Dec-2009 Steve Naroff <snaroff@apple.com> Remove 'LangOpts' from Diagnostic (added in http://llvm.org/viewvc/llvm-project?view=rev&revision=90642).

Simply use the 'LangOpts' member already present in TextDiagnosticPrinter.

Sorry for the confusion!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90664 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
ae427a94f20d49c5e8a73b6458ed06b422813ab8 05-Dec-2009 Steve Naroff <snaroff@apple.com> Integrate the following from the 'objective-rewrite' branch:

http://llvm.org/viewvc/llvm-project?view=rev&revision=71086

Note - This commit only includes the fix for:

<rdar://problem/6309338> slightly different error message format for Visual Studio.

The fix for <rdar://problem/6845623> from protocol to template. is separate/forthcoming.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90642 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
e0c4d895ffe4320aa4e29485711ad7d154f2cc2b 05-Dec-2009 Steve Naroff <snaroff@apple.com> Integrate the following from the 'objective-rewrite' branch:

http://llvm.org/viewvc/llvm-project?view=rev&revision=71086

Note - This commit only includes the fix for:

<rdar://problem/6309338> slightly different error message format for Visual Studio.

The fix for <rdar://problem/6845623> from protocol to template. is separate/forthcoming.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90642 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
0f45500a267ab15aa31bcfa4ac779d8300fb89ea 03-Dec-2009 Douglas Gregor <doug.gregor@gmail.com> Minor cleanup to the code-completion-point logic suggested by Chris.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90459 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
109ae73ec71a1d27358510ce049b59637b4a6b40 03-Dec-2009 Douglas Gregor <dgregor@apple.com> Minor cleanup to the code-completion-point logic suggested by Chris.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90459 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
bd4cbba67a2cb7047c6f82e9b7a1e6f96748904e 02-Dec-2009 Douglas Gregor <doug.gregor@gmail.com> Extend -remap-file=from;to to permit mapping from a non-existent
file. This is accomplished by introducing the notion of a "virtual"
file into the file manager, which provides a FileEntry* for a named
file whose size and modification time are known but which may not
exist on disk.

Added a cute little test that remaps both a .c file and a .h file it
includes to alternative files.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90329 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
057e567f1b375190779e5341f42861896cdee442 02-Dec-2009 Douglas Gregor <dgregor@apple.com> Extend -remap-file=from;to to permit mapping from a non-existent
file. This is accomplished by introducing the notion of a "virtual"
file into the file manager, which provides a FileEntry* for a named
file whose size and modification time are known but which may not
exist on disk.

Added a cute little test that remaps both a .c file and a .h file it
includes to alternative files.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90329 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
d01fc222cedc08537c9d74e86ac69b4fb684f1a8 02-Dec-2009 Douglas Gregor <doug.gregor@gmail.com> Extend the source manager with the ability to override the contents of
files with the contents of an arbitrary memory buffer. Use this new
functionality to drastically clean up the way in which we handle file
truncation for code-completion: all of the truncation/completion logic
is now encapsulated in the preprocessor where it belongs
(<rdar://problem/7434737>).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90300 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
2968442603b029949246467253eeac8139a5b6d8 02-Dec-2009 Douglas Gregor <dgregor@apple.com> Extend the source manager with the ability to override the contents of
files with the contents of an arbitrary memory buffer. Use this new
functionality to drastically clean up the way in which we handle file
truncation for code-completion: all of the truncation/completion logic
is now encapsulated in the preprocessor where it belongs
(<rdar://problem/7434737>).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90300 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
a211fccd7f4843258173c74b2bc80b8991d21b94 02-Dec-2009 Douglas Gregor <doug.gregor@gmail.com> Eliminate the unnecessary FirstFID cache variable from the source manager's ContentCache

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90294 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
4a160e16eb97bee03e36962d11aedc6452710bc5 02-Dec-2009 Douglas Gregor <dgregor@apple.com> Eliminate the unnecessary FirstFID cache variable from the source manager's ContentCache

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90294 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
56b32ba0a97826b6eb1b066f0cd31ec698c4732d 02-Dec-2009 Daniel Dunbar <daniel@zuster.org> In SourceManager::isBeforeInTranslationUnit, if we are trying to compare two source locations with no common ancestor in the include stack, determine order by assuming memory buffers preceed files, and then that FileIDs are created in order.

The later assumption is patently false, but this was already broken -- this situation is conceptually impossible, my feeling is we should fix SourceManager and friends to make it impossible in practice as well. However, we need to fix PR5662 and perhaps some other things involving memory buffers first. In the short term I'm pretty sure this is reliable.

Chris, Argiris, is this going to break anything that wasn't already broken?

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90280 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
fbcc7bed1a0661ecc91b62e0696b8310887713f6 02-Dec-2009 Daniel Dunbar <daniel@zuster.org> In SourceManager::isBeforeInTranslationUnit, if we are trying to compare two source locations with no common ancestor in the include stack, determine order by assuming memory buffers preceed files, and then that FileIDs are created in order.

The later assumption is patently false, but this was already broken -- this situation is conceptually impossible, my feeling is we should fix SourceManager and friends to make it impossible in practice as well. However, we need to fix PR5662 and perhaps some other things involving memory buffers first. In the short term I'm pretty sure this is reliable.

Chris, Argiris, is this going to break anything that wasn't already broken?

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90280 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
6fc358ea6ce5c8f786a939f70c2d8ca015be512a 01-Dec-2009 Chris Lattner <sabre@nondot.org> pass the reason for failure up from MemoryBuffer and report it
in diagnostics when we fail to open a file. This allows us to
report things like:

$ clang test.c -I.
test.c:2:10: fatal error: error opening file './foo.h': Permission denied
#include "foo.h"
^



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90276 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
39d9841ed4c0568d4b44dfbc12ac04491f60a374 01-Dec-2009 Chris Lattner <sabre@nondot.org> pass the reason for failure up from MemoryBuffer and report it
in diagnostics when we fail to open a file. This allows us to
report things like:

$ clang test.c -I.
test.c:2:10: fatal error: error opening file './foo.h': Permission denied
#include "foo.h"
^



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90276 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
a3172a36050a033d2e91117d8f2204c646b85dff 01-Dec-2009 Daniel Dunbar <daniel@zuster.org> Convert Diagnostic::getCustomDiagID to take a StringRef.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90244 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
32d4d80c26e8c4c1922cff4661e0b9f44a3aabfc 01-Dec-2009 Daniel Dunbar <daniel@zuster.org> Convert Diagnostic::getCustomDiagID to take a StringRef.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90244 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
50cee73129a38c5780dca6abb3ef6d3e288eb6e3 28-Nov-2009 Kovarththanan Rajaratnam <kovarththanan.rajaratnam@gmail.com> This patch adds a PUNCTUATOR macro (specialization of TOK) in TokenKinds.def and makes use of it in tok::getTokenSimpleSpelling.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90042 91177308-0d34-0410-b5e6-96231b3b80d8
okenKinds.cpp
59c55e724945daa060a5f1aaecbfd4de04770e93 28-Nov-2009 Kovarththanan Rajaratnam <kovarththanan.rajaratnam@gmail.com> This patch adds a PUNCTUATOR macro (specialization of TOK) in TokenKinds.def and makes use of it in tok::getTokenSimpleSpelling.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90042 91177308-0d34-0410-b5e6-96231b3b80d8
okenKinds.cpp
14a70a3beef619fd82fc190754023656554f452b 21-Nov-2009 Edward O'Callaghan <eocallaghan@auroraux.org> Add SigAtomicType to TargetInfo, Needed for MSP and PIC Targets, Credit to Ken Dyck.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89520 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
9cf910efc4fb7001a6d276ed2eabf01f0f0efaaa 21-Nov-2009 Edward O'Callaghan <eocallaghan@auroraux.org> Add SigAtomicType to TargetInfo, Needed for MSP and PIC Targets, Credit to Ken Dyck.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89520 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
ed7bdbc4e365e9f280fddafc2a6a02c92c6eaae7 19-Nov-2009 John Thompson <john.thompson.jtsoftware@gmail.com> Added preliminary support step for PS3

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89362 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
3f6918a8cc933de5f31139603af4c926e338ff6c 19-Nov-2009 John Thompson <John.Thompson.JTSoftware@gmail.com> Added preliminary support step for PS3

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89362 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
c85b911b3e178a14c63e3d5e2ed7e2492f0a3132 17-Nov-2009 Daniel Dunbar <daniel@zuster.org> Eliminate TargetInfo::getDefaultLangOptions, this kind of logic is better done
in the driver.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89073 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
2fc430d5483545b47a5a22f45338ff54f5362e34 17-Nov-2009 Daniel Dunbar <daniel@zuster.org> Eliminate TargetInfo::getDefaultLangOptions, this kind of logic is better done
in the driver.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89073 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
e6c9f54d16b0af0c3962d456dbc37699d0ccde08 17-Nov-2009 Daniel Dunbar <daniel@zuster.org> Move -fnext-runtime defaulting to driver (and change clang-cc default to
-fnext-runtime), instead of using getDefaultLangOptions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89058 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
c5a97ec19408c3dca4b6a6385f11d8c783b94d0b 17-Nov-2009 Daniel Dunbar <daniel@zuster.org> Move -fnext-runtime defaulting to driver (and change clang-cc default to
-fnext-runtime), instead of using getDefaultLangOptions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89058 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
2614ec30662bebbb1b9b7a4fa4c82eb5f5fc34b0 17-Nov-2009 Daniel Dunbar <daniel@zuster.org> Move -fms-extensions defaulting to driver, instead of using getDefaultLangOptions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89057 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
0be42c44f0199c5023b542d6a6d2e66eb594f27d 17-Nov-2009 Daniel Dunbar <daniel@zuster.org> Move -fms-extensions defaulting to driver, instead of using getDefaultLangOptions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89057 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
8d1811b3c8c69167225f8a22614fdcde3a13d105 17-Nov-2009 Daniel Dunbar <daniel@zuster.org> Move char-is-signed defaulting to driver, instead of using
getDefaultLangOptions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89053 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1f95e6567faab67f4363d650f73121359c4bdbab 17-Nov-2009 Daniel Dunbar <daniel@zuster.org> Move char-is-signed defaulting to driver, instead of using
getDefaultLangOptions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89053 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
097309f513177f708ddf986ffc8afe1becbfe56f 15-Nov-2009 Edward O'Callaghan <eocallaghan@auroraux.org> Add MIPS support to Triple for Linux and the PSP. Credit to Bruno Cardoso Lopes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88850 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
84423a8c8450a1f3ce82730fb35d5ee4e7980701 15-Nov-2009 Edward O'Callaghan <eocallaghan@auroraux.org> Add MIPS support to Triple for Linux and the PSP. Credit to Bruno Cardoso Lopes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88850 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
ca3e991c52d516df8069e9e64261cc5b821f3ecc 15-Nov-2009 Daniel Dunbar <daniel@zuster.org> Add TargetOptions and use it when constructing targets.
- This ended up being hard to factor, sorry for the large diff.

- Some post-commit cleanup to come.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88833 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
d58c03f42ebb4e548c2b53fa25b1cfe02ebb9ac0 15-Nov-2009 Daniel Dunbar <daniel@zuster.org> Add TargetOptions and use it when constructing targets.
- This ended up being hard to factor, sorry for the large diff.

- Some post-commit cleanup to come.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88833 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
d6a7a0870c56e5652bac047d22c74e97235e44b5 14-Nov-2009 Benjamin Kramer <benny.kra@googlemail.com> Move DISABLE_INLINE to the front of the decl so MSVC can parse it. Patch by Amine Khaldi!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88797 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
c997eb4ac1b332406b1f16d4eddce7988d68c56b 14-Nov-2009 Benjamin Kramer <benny.kra@googlemail.com> Move DISABLE_INLINE to the front of the decl so MSVC can parse it. Patch by Amine Khaldi!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88797 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
d01de3a57d667e9a241d5117caecfd91252fcdcd 12-Nov-2009 Chris Lattner <sabre@nondot.org> do not store wchar/char16/char32/intmax width/alignment info
into TargetInfo, just derive this based on the underlying type.
This prevents them from getting out of synch, patch by Ken Dyck!



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86976 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
9184646509d015ea66e796113a8c68598681374b 12-Nov-2009 Chris Lattner <sabre@nondot.org> do not store wchar/char16/char32/intmax width/alignment info
into TargetInfo, just derive this based on the underlying type.
This prevents them from getting out of synch, patch by Ken Dyck!



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86976 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
8dd8f2672d6fc45c99318ab81b6dbcab38c18166 11-Nov-2009 Daniel Dunbar <daniel@zuster.org> Simplifiy target feature handling by coalescing all the logic into
InitializeCompileOptions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86826 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
29a790ba422cfeeea9546b6e76777d98fa73cd67 11-Nov-2009 Daniel Dunbar <daniel@zuster.org> Simplifiy target feature handling by coalescing all the logic into
InitializeCompileOptions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86826 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
2e17d91821b0454b4ad7146c729256a210951e7b 07-Nov-2009 Chris Lattner <sabre@nondot.org> teach the various targets what native integer types they have.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86395 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
1932e12d8bf435b9d449906bea7edcf183aa5d19 07-Nov-2009 Chris Lattner <sabre@nondot.org> teach the various targets what native integer types they have.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86395 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
fb8b967819e9d8f49ac606ec73ac9ccfa6d8f177 06-Nov-2009 Douglas Gregor <doug.gregor@gmail.com> Strip off the /clang/tools/clang at the end of the Subversion URL, if it's there

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86195 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
1fbf1f0052d6758774e565039ba69780295eb8dd 06-Nov-2009 Douglas Gregor <dgregor@apple.com> Strip off the /clang/tools/clang at the end of the Subversion URL, if it's there

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86195 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
4176705b836ea3720fcec92428c688fb0a9fc9b1 05-Nov-2009 John Thompson <john.thompson.jtsoftware@gmail.com> Eliminate tabls

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86183 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
40d1bb6383c14d5f8249d0640e8088a91b694c66 05-Nov-2009 John Thompson <John.Thompson.JTSoftware@gmail.com> Eliminate tabls

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86183 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
cffa5b706a6ccbc5c2f96e6778d0e1b33b666144 05-Nov-2009 Chris Lattner <sabre@nondot.org> clean up integer preprocessor type definitions, patch by Ken Dyck!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86177 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
9099e7bcda3922cee0cffcdf21332ac4aa193cea 05-Nov-2009 Chris Lattner <sabre@nondot.org> clean up integer preprocessor type definitions, patch by Ken Dyck!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86177 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
e65800a6496207b51379f92540789206b990781e 05-Nov-2009 John Thompson <john.thompson.jtsoftware@gmail.com> Adding -fshort-wchar option.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86167 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
a6fda124bf380479529d6a80b84b62cacd3cb707 05-Nov-2009 John Thompson <John.Thompson.JTSoftware@gmail.com> Adding -fshort-wchar option.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86167 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
d1319d2d62b108c7c24c92e73d4d101b035d1037 04-Nov-2009 Douglas Gregor <doug.gregor@gmail.com> Implement support for parsing dependent template-ids that refer to
overloaded operators, e.g.,

p->template operator+<T>()




git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85989 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
ca1bdd7c269a2390d43c040a60511edd017ee130 04-Nov-2009 Douglas Gregor <dgregor@apple.com> Implement support for parsing dependent template-ids that refer to
overloaded operators, e.g.,

p->template operator+<T>()




git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85989 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
6b767bf83cfdcd5c30c1cef42e0edf6f77ce6d8c 03-Nov-2009 Chris Lattner <sabre@nondot.org> pr5371 likely has nothing to do with this.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85862 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
170b765785a00e8a66bf7f917dd5ec355d32d2d8 03-Nov-2009 Chris Lattner <sabre@nondot.org> pr5371 likely has nothing to do with this.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85862 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
0bf990cfa97f627d9d7c2599cf49f872edd5b79b 02-Nov-2009 Edward O'Callaghan <eocallaghan@auroraux.org> Add note to FIXME about PR5371.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85825 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
3963e756e35d61e4a0c973f301a068c9bfd2f346 02-Nov-2009 Edward O'Callaghan <eocallaghan@auroraux.org> Add note to FIXME about PR5371.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85825 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
3b822f1b2faac5db9cc6297485f82ac5fe417b0b 25-Oct-2009 Chris Lattner <sabre@nondot.org> rename getTypeSigned() -> isTypeSigned() per daniel's review.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85076 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
961f0708fb66375acf47f9e9bc1aecfb3f992aea 25-Oct-2009 Chris Lattner <sabre@nondot.org> rename getTypeSigned() -> isTypeSigned() per daniel's review.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85076 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
07cfc4a0d855feceb52f960664952484154125d0 24-Oct-2009 Daniel Dunbar <daniel@zuster.org> Fix cmake failure trying to get SVN info for non-SVN trees.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85015 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
5c14dcebdece3b2bb70ba0afa01f093676870b14 24-Oct-2009 Daniel Dunbar <daniel@zuster.org> Fix cmake failure trying to get SVN info for non-SVN trees.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85015 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
09e95f0f2829673cfb8a02d4533f004a5cb6d6c0 24-Oct-2009 Sanjiv Gupta <sanjiv.gupta@microchip.com> Add a preprocessor define for adding a "near" section attribute for allowing
objects to be placed at shared memory.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85007 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
7de7009a00ba502e49978fb9b8a7dcd5c2743151 24-Oct-2009 Sanjiv Gupta <sanjiv.gupta@microchip.com> Add a preprocessor define for adding a "near" section attribute for allowing
objects to be placed at shared memory.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85007 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
274ce7a0d9b9e7742e88b86c5a3627491e440e36 23-Oct-2009 John Thompson <john.thompson.jtsoftware@gmail.com> Fixed undefined behavior in pushMappings when the stack has to resize.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84924 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
ca2c3e2cfc630db614298e8d7f2aaca4507e01e1 23-Oct-2009 John Thompson <John.Thompson.JTSoftware@gmail.com> Fixed undefined behavior in pushMappings when the stack has to resize.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84924 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
40a75fef39da6855688629ed68045d3690b29c75 21-Oct-2009 Chris Lattner <sabre@nondot.org> add helpful methods to TargetInfo for querying builtin integer type properties,
patch by Ken Dyck!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84746 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
b304f77cb621a47221f2aa2d35acdb5c730421ff 21-Oct-2009 Chris Lattner <sabre@nondot.org> add helpful methods to TargetInfo for querying builtin integer type properties,
patch by Ken Dyck!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84746 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
72f4aae0cff32005612e3d53ad20f9a2db7971de 21-Oct-2009 Chris Lattner <sabre@nondot.org> hookize wint_t's definition, patch by Edward O'Callaghan (from PR5233).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84740 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
e64ef80363c84f4f431e26b61db554c89beeddb6 21-Oct-2009 Chris Lattner <sabre@nondot.org> hookize wint_t's definition, patch by Edward O'Callaghan (from PR5233).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84740 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
f170dc1c5113bb1749cb77f15609e961688e8c6d 20-Oct-2009 Chris Lattner <sabre@nondot.org> teach FormatDiagnostic to aggregate previously formatted arguments and
pass them down into the ArgToStringFn implementation. This allows
redundancy across operands to a diagnostic to be eliminated.

This isn't used yet, so no functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84602 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
b54d8af9a66cc20a6a9a9219c7eaea8df7ee7fd4 20-Oct-2009 Chris Lattner <sabre@nondot.org> teach FormatDiagnostic to aggregate previously formatted arguments and
pass them down into the ArgToStringFn implementation. This allows
redundancy across operands to a diagnostic to be eliminated.

This isn't used yet, so no functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84602 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
1ed2bb804102b54d62426d8aa4f60bcd6f2a6cb0 18-Oct-2009 Daniel Dunbar <daniel@zuster.org> PR5218: Replace IdentifierInfo::getName with StringRef version, now that clients
are updated.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84447 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
dentifierTable.cpp
01eb9b9683535d8a65c704ad2c545903409e2d36 18-Oct-2009 Daniel Dunbar <daniel@zuster.org> PR5218: Replace IdentifierInfo::getName with StringRef version, now that clients
are updated.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84447 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
dentifierTable.cpp
0a7ef9afd7cf9bda3f76cff3092d09d3474b9686 18-Oct-2009 Edward O'Callaghan <eocallaghan@auroraux.org> The AuroraUX toolchain has conflicting wchar_t between the system stdlib.h header and the clang stddef.h header where clang was defining as int where we use long.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84416 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
991f9a74e7f60bff080673dc9107e330e2167310 18-Oct-2009 Edward O'Callaghan <eocallaghan@auroraux.org> The AuroraUX toolchain has conflicting wchar_t between the system stdlib.h header and the clang stddef.h header where clang was defining as int where we use long.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84416 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
5b224aefafc55b7253a1adf79f9a8db438a33ce3 17-Oct-2009 Daniel Dunbar <daniel@zuster.org> Avoid std::string thrashing in MultiKeywordSelector::getName(), and simplify.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84343 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
76b61ccc603fad1c631948bf1e49f31343de76e9 17-Oct-2009 Daniel Dunbar <daniel@zuster.org> Avoid std::string thrashing in MultiKeywordSelector::getName(), and simplify.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84343 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
282ce8b016e88ddc41dd26d124ccc77b7bf5e35e 17-Oct-2009 Daniel Dunbar <daniel@zuster.org> Use raw_ostream for formatting integers, and use IdentifierInfo::getNameStr
instead of getName.
- -2 FIXMEs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84337 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
23e47c6b6e8ccdd8daa378ab2a879644425c72d8 17-Oct-2009 Daniel Dunbar <daniel@zuster.org> Use raw_ostream for formatting integers, and use IdentifierInfo::getNameStr
instead of getName.
- -2 FIXMEs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84337 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
f0281ef6cb826acaf5090ea65d69164fe28e9352 16-Oct-2009 Douglas Gregor <doug.gregor@gmail.com> Add support for a chain of stat caches in the FileManager, rather than
only supporting a single stat cache. The immediate benefit of this
change is that we can now generate a PCH/AST file when including
another PCH file; in the future, the chain of stat caches will likely
be useful with multiple levels of PCH files.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84263 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
52e7108f51a4a9f4d6e84f33fb594d06e1d79560 16-Oct-2009 Douglas Gregor <dgregor@apple.com> Add support for a chain of stat caches in the FileManager, rather than
only supporting a single stat cache. The immediate benefit of this
change is that we can now generate a PCH/AST file when including
another PCH file; in the future, the chain of stat caches will likely
be useful with multiple levels of PCH files.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84263 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
e63051bde67283ae5571e67443a4267d51309c33 16-Oct-2009 Chris Lattner <sabre@nondot.org> increase helpfulness of assert message.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84240 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
5a3ce9b10c164d9bf75a70d429e55d4e171a9a9e 16-Oct-2009 Chris Lattner <sabre@nondot.org> increase helpfulness of assert message.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84240 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
174219b75299de4f9529b12083ec17702020e99d 16-Oct-2009 Anton Korobeynikov <asl@math.spbu.ru> Disallow arbitrary custom inline asm constraints for msp430.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84219 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
03265b6046225e5d4e04071acb91294cfe215931 16-Oct-2009 Anton Korobeynikov <asl@math.spbu.ru> Disallow arbitrary custom inline asm constraints for msp430.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84219 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
bba981c237207bf87b57575837748a53c64f10d9 14-Oct-2009 Chris Lattner <sabre@nondot.org> fix some cfstring related issues:
1) -fwritable-string does affect the non-utf16 version of cfstrings
just not the utf16 ones.
2) utf16 strings should always be marked constant, as the __TEXT segment
is readonly.
3) The name of the global doesn't matter, remove it from TargetInfo.
4) Trust the asmprinter to drop cstrings into the right section, like llvmgcc does now.

This fixes rdar://7115750



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84077 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
278b9f06933c385ffbccc15f8491787470cb4a1b 14-Oct-2009 Chris Lattner <sabre@nondot.org> fix some cfstring related issues:
1) -fwritable-string does affect the non-utf16 version of cfstrings
just not the utf16 ones.
2) utf16 strings should always be marked constant, as the __TEXT segment
is readonly.
3) The name of the global doesn't matter, remove it from TargetInfo.
4) Trust the asmprinter to drop cstrings into the right section, like llvmgcc does now.

This fixes rdar://7115750



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84077 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f1aa12fb490a02785a57140f0af5163be5f24619 13-Oct-2009 Douglas Gregor <doug.gregor@gmail.com> Unify our diagnostic printing for errors of the form, "we didn't like
what we found when we looked into <blah>", where <blah> is a
DeclContext*. We can now format DeclContext*'s in nice ways, e.g.,
"namespace N", "the global namespace", "'class Foo'".

This is part of PR3990, but we're not quite there yet.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84028 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
3f09327b26033d0a9676d52d80cf92c48f581aff 13-Oct-2009 Douglas Gregor <dgregor@apple.com> Unify our diagnostic printing for errors of the form, "we didn't like
what we found when we looked into <blah>", where <blah> is a
DeclContext*. We can now format DeclContext*'s in nice ways, e.g.,
"namespace N", "the global namespace", "'class Foo'".

This is part of PR3990, but we're not quite there yet.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84028 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
79c224bf5891b7973af422943c14b7700fb7116e 13-Oct-2009 Chris Lattner <sabre@nondot.org> fix PR4938 by recognizing % as a modifier on outputs,
previously we only recognized it on inputs.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83939 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
4053983963cb94a6129da47bca8cce637c8b7bff 13-Oct-2009 Chris Lattner <sabre@nondot.org> fix PR4938 by recognizing % as a modifier on outputs,
previously we only recognized it on inputs.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83939 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
4da7a1673aac9afa26f409fd9834a229c9436afc 09-Oct-2009 Mike Stump <mrs@apple.com> "Someone pointed out that in my previous Targets.cpp patch I didn't
handle the long size difference for one of the Windows targets." Patch
by John Thompson.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83592 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
a55cce8b3e579e62a503976235de5d35fcf6a893 09-Oct-2009 Mike Stump <mrs@apple.com> "Someone pointed out that in my previous Targets.cpp patch I didn't
handle the long size difference for one of the Windows targets." Patch
by John Thompson.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83592 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
ec0240c63cbf1e94db49fc2dd03c33988925ba53 09-Oct-2009 Douglas Gregor <doug.gregor@gmail.com> Installation of Clang libraries and headers, from Axel Naumann!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83582 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
14ea5696417a8e8d244a07091284cdeba57c6d4d 09-Oct-2009 Douglas Gregor <dgregor@apple.com> Installation of Clang libraries and headers, from Axel Naumann!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83582 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
45e728a16a4ed8662ae0b051940f4a984ce520a6 05-Oct-2009 Douglas Gregor <doug.gregor@gmail.com> Provide a common set of routines in Version.h that return Subversion
branch/revision information. Use that information in the driver,
rather than one-off branch/revision computation.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83321 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
akefile
ersion.cpp
b8d1191fdeb4eec9bc5cf9bf4b027add0fb467b3 05-Oct-2009 Douglas Gregor <dgregor@apple.com> Provide a common set of routines in Version.h that return Subversion
branch/revision information. Use that information in the driver,
rather than one-off branch/revision computation.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83321 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
akefile
ersion.cpp
693c150ce62f552b0586fdc4d0accdab2cc00c92 05-Oct-2009 Douglas Gregor <doug.gregor@gmail.com> Pre-commit commit to get URL keyword expansion for Clang version information

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83319 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
60b5d8ed5993a2551c60e1b2400c3414a7070687 05-Oct-2009 Douglas Gregor <dgregor@apple.com> Pre-commit commit to get URL keyword expansion for Clang version information

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83319 91177308-0d34-0410-b5e6-96231b3b80d8
ersion.cpp
2c16e4ed32512b381e2afb3a9df95a208107374a 27-Sep-2009 Cédric Venet <cedric.venet@laposte.net> Handle Eli remark on mingw __declspec macro definition

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82894 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
9a7b0855a6b3ecb5fdaa363722cba3e827752cb9 27-Sep-2009 Cedric Venet <cedric.venet@laposte.net> Handle Eli remark on mingw __declspec macro definition

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82894 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
8d8e9d6bde271729b7df6f89bbc08742cd7cde2a 23-Sep-2009 Daniel Dunbar <daniel@zuster.org> Factor Windows target into VS, MinGW and Cygwin variants.
- Patch by John Thompson!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82621 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
9fe4a5d8a60016952e61db03e358f69557ca923c 23-Sep-2009 Daniel Dunbar <daniel@zuster.org> Factor Windows target into VS, MinGW and Cygwin variants.
- Patch by John Thompson!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82621 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
aa339184940ceb3aa0cac0b5cb45262796aa3341 23-Sep-2009 Chris Lattner <sabre@nondot.org> implement support for __builtin_eh_return_data_regno on x86-32 and x86-64.
This implements PR5034 and rdar://6836445.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82614 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
21fb98ee003e992b0c4e204d98a19e0ef544cae3 23-Sep-2009 Chris Lattner <sabre@nondot.org> implement support for __builtin_eh_return_data_regno on x86-32 and x86-64.
This implements PR5034 and rdar://6836445.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82614 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
54f62dc6b91b7b0c7e98d34090e8464bc23c00d8 22-Sep-2009 Daniel Dunbar <daniel@zuster.org> Reconcile Clang/ARM target data string with llvm-gcc (module eabi weirdness).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82578 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
dff10dcee09ed48a0d74676299726b3533ea9b41 22-Sep-2009 Daniel Dunbar <daniel@zuster.org> Reconcile Clang/ARM target data string with llvm-gcc (module eabi weirdness).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82578 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
4d8a77769e8da39c0cd25d67941cb153fb4a9782 22-Sep-2009 Douglas Gregor <doug.gregor@gmail.com> Replace the -code-completion-dump option with

-code-completion-at=filename:line:column

which performs code completion at the specified location by truncating
the file at that position and enabling code completion. This approach
makes it possible to run multiple tests from a single test file, and
gives a more natural command-line interface.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82571 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
b657f115c3b4e262e72906a28cbcf3eaccd9460c 22-Sep-2009 Douglas Gregor <dgregor@apple.com> Replace the -code-completion-dump option with

-code-completion-at=filename:line:column

which performs code completion at the specified location by truncating
the file at that position and enabling code completion. This approach
makes it possible to run multiple tests from a single test file, and
gives a more natural command-line interface.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82571 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
7c7bfebb4c1a266a0bcd1b66f816995842e709e1 18-Sep-2009 Chris Lattner <sabre@nondot.org> don't stick an uninitialized 'stat' buf into the stat cache, fill it
with zeros. This avoids a GCC warning (PR5000)


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82194 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
f1affe6129442b230d3d09b1938e07a7b341a102 18-Sep-2009 Chris Lattner <sabre@nondot.org> don't stick an uninitialized 'stat' buf into the stat cache, fill it
with zeros. This avoids a GCC warning (PR5000)


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82194 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
70aa572f9b5ebb13221f2062f40459a58bc59497 17-Sep-2009 Douglas Gregor <doug.gregor@gmail.com> Initial implementation of a code-completion interface in Clang. In
essence, code completion is triggered by a magic "code completion"
token produced by the lexer [*], which the parser recognizes at
certain points in the grammar. The parser then calls into the Action
object with the appropriate CodeCompletionXXX action.

Sema implements the CodeCompletionXXX callbacks by performing minimal
translation, then forwarding them to a CodeCompletionConsumer
subclass, which uses the results of semantic analysis to provide
code-completion results. At present, only a single, "printing" code
completion consumer is available, for regression testing and
debugging. However, the design is meant to permit other
code-completion consumers.

This initial commit contains two code-completion actions: one for
member access, e.g., "x." or "p->", and one for
nested-name-specifiers, e.g., "std::". More code-completion actions
will follow, along with improved gathering of code-completion results
for the various contexts.

[*] In the current -code-completion-dump testing/debugging mode, the
file is truncated at the completion point and EOF is translated into
"code completion".


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82166 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
81b747b7fcc91c2fba9a3183d8fac80adbfc1d3e 17-Sep-2009 Douglas Gregor <dgregor@apple.com> Initial implementation of a code-completion interface in Clang. In
essence, code completion is triggered by a magic "code completion"
token produced by the lexer [*], which the parser recognizes at
certain points in the grammar. The parser then calls into the Action
object with the appropriate CodeCompletionXXX action.

Sema implements the CodeCompletionXXX callbacks by performing minimal
translation, then forwarding them to a CodeCompletionConsumer
subclass, which uses the results of semantic analysis to provide
code-completion results. At present, only a single, "printing" code
completion consumer is available, for regression testing and
debugging. However, the design is meant to permit other
code-completion consumers.

This initial commit contains two code-completion actions: one for
member access, e.g., "x." or "p->", and one for
nested-name-specifiers, e.g., "std::". More code-completion actions
will follow, along with improved gathering of code-completion results
for the various contexts.

[*] In the current -code-completion-dump testing/debugging mode, the
file is truncated at the completion point and EOF is translated into
"code completion".


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82166 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
369c21c03bfc33b75c55b964632bb08ee0eae74e 17-Sep-2009 Mike Stump <mrs@apple.com> Fix typo.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82164 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
10880397d205009e06e278b4c25d17f28ddf2d4e 17-Sep-2009 Mike Stump <mrs@apple.com> Fix typo.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82164 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f015656de550b6b935178f640486e9cccbf40aa9 17-Sep-2009 Daniel Dunbar <daniel@zuster.org> ARM: Incremental improvement to preprocessor defines.
- Based on patch by Shantonu.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82147 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
e1f63b38a0a668a2756c77b92f440c03977d7ca1 17-Sep-2009 Daniel Dunbar <daniel@zuster.org> ARM: Incremental improvement to preprocessor defines.
- Based on patch by Shantonu.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82147 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
40b774e7149e39cbf2a1556a0a4e979fe1b7eb84 17-Sep-2009 Daniel Dunbar <daniel@zuster.org> Add ARM register names and aliases.
- Patch by Shantonu Sen!

<rdar://problem/6922650> clang doesn't know about ARM registers for inline asm clobber lists

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82132 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
c1f2cddb8cccbcc53ab4311672a53b18eb6dc55f 17-Sep-2009 Daniel Dunbar <daniel@zuster.org> Add ARM register names and aliases.
- Patch by Shantonu Sen!

<rdar://problem/6922650> clang doesn't know about ARM registers for inline asm clobber lists

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82132 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
14d2bb718cfcb6dbb5a281957807fa7af7159b69 16-Sep-2009 Chris Lattner <sabre@nondot.org> fix some ppc register name issues, patch by Richard Pennington!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82009 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
e94e0d413ff375d9b02a38124377cb333d5059a9 16-Sep-2009 Chris Lattner <sabre@nondot.org> fix some ppc register name issues, patch by Richard Pennington!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82009 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
0d83d5116ec471aa80c4aaa4aab3e5d91b9265f2 14-Sep-2009 Daniel Dunbar <daniel@zuster.org> Add TargetInfo::getABI(), and base ARM APCS vs AAPCS choice on that.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81735 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
018ba5ab0671d9b6eefecaffc118c869bea151a1 14-Sep-2009 Daniel Dunbar <daniel@zuster.org> Add TargetInfo::getABI(), and base ARM APCS vs AAPCS choice on that.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81735 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
b95316353240ddd7552b818f44ff320e4133f77d 14-Sep-2009 Daniel Dunbar <daniel@zuster.org> ARM target tweaks.
- Change TargetData string to match llvm-gcc.
- Some -target-abi support for 'apcs-gnu', most importantly the alignment of double and long long changes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81732 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
a2a416150455d049e8663227fbe7c30c2a948618 14-Sep-2009 Daniel Dunbar <daniel@zuster.org> ARM target tweaks.
- Change TargetData string to match llvm-gcc.
- Some -target-abi support for 'apcs-gnu', most importantly the alignment of double and long long changes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81732 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
3f361b5c731e14d7fa08efd76a93f2f912e66e73 11-Sep-2009 Daniel Dunbar <daniel@zuster.org> Swizzle the target triple based on -mthumb, and update clang-cc to recognize
thumb-foo-bar as an ARM target.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81497 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f4aa4f61de7d364364dc94bbf83ff71448a11327 11-Sep-2009 Daniel Dunbar <daniel@zuster.org> Swizzle the target triple based on -mthumb, and update clang-cc to recognize
thumb-foo-bar as an ARM target.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81497 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
25cf760b54d3b88633827501013bc51a29b28aba 09-Sep-2009 Mike Stump <mrs@apple.com> Remove tabs, and whitespace cleanups.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81346 91177308-0d34-0410-b5e6-96231b3b80d8
uiltins.cpp
onvertUTF.c
iagnostic.cpp
ileManager.cpp
dentifierTable.cpp
ourceLocation.cpp
ourceManager.cpp
argetInfo.cpp
argets.cpp
1eb4433ac451dc16f4133a88af2d002ac26c58ef 09-Sep-2009 Mike Stump <mrs@apple.com> Remove tabs, and whitespace cleanups.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81346 91177308-0d34-0410-b5e6-96231b3b80d8
uiltins.cpp
onvertUTF.c
iagnostic.cpp
ileManager.cpp
dentifierTable.cpp
ourceLocation.cpp
ourceManager.cpp
argetInfo.cpp
argets.cpp
6ba693c29fa2d99ba4b6a8f24f785fadfa825c25 05-Sep-2009 Benjamin Kramer <benny.kra@googlemail.com> Replace some instances of std::string with StringRefs.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81079 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
458fb10ef5ba2d7b375c6c64095c1458af0a5be3 05-Sep-2009 Benjamin Kramer <benny.kra@googlemail.com> Replace some instances of std::string with StringRefs.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81079 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
62a7cbc34a427d95d86fb35c69ac073c252465a9 03-Sep-2009 Daniel Dunbar <daniel@zuster.org> Add basic support for -pthread.
- Patch by David Chisnall, with PCH and Darwin support mixed in.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80883 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
5345c391c65d1780a0d7b0102b7f735cc3f82732 03-Sep-2009 Daniel Dunbar <daniel@zuster.org> Add basic support for -pthread.
- Patch by David Chisnall, with PCH and Darwin support mixed in.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80883 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
3e208d820f141072cfbb82bee660850654932e66 26-Aug-2009 Douglas Gregor <doug.gregor@gmail.com> Improve diagnostics and recovery when the nested-name-specifier of a
qualified name does not actually refer into a class/class
template/class template partial specialization.

Improve printing of nested-name-specifiers to eliminate redudant
qualifiers. Also, make it possible to output a nested-name-specifier
through a DiagnosticBuilder, although there are relatively few places
that will use this leeway.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80056 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
dacd434c49658286c380c7b4c357d76d53cb4aa1 26-Aug-2009 Douglas Gregor <dgregor@apple.com> Improve diagnostics and recovery when the nested-name-specifier of a
qualified name does not actually refer into a class/class
template/class template partial specialization.

Improve printing of nested-name-specifiers to eliminate redudant
qualifiers. Also, make it possible to output a nested-name-specifier
through a DiagnosticBuilder, although there are relatively few places
that will use this leeway.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80056 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
2e967de5e6f7a9ab2e382bc3b3bed638d12bdd4b 24-Aug-2009 Daniel Dunbar <daniel@zuster.org> Remove TargetInfo::getTargetPrefix().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79907 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
55cc2ed722e041228670d26d548e5590e355aced 24-Aug-2009 Daniel Dunbar <daniel@zuster.org> Remove TargetInfo::getTargetPrefix().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79907 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
608b388b563b5ccf7eeac5da78b539ea8f7ae4cd 24-Aug-2009 Daniel Dunbar <daniel@zuster.org> Switch TargetInfo to store an llvm::Triple.
- Primarily to discourage clients form making decisions based on the string.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79901 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1752ee4849f4c37f5e03193e658be92650b0e65a 24-Aug-2009 Daniel Dunbar <daniel@zuster.org> Switch TargetInfo to store an llvm::Triple.
- Primarily to discourage clients form making decisions based on the string.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79901 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
31bc304905ece1072f5029eb821e309aecaf88f4 24-Aug-2009 Chris Lattner <sabre@nondot.org> API changes to match llvm ToT.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79868 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
ourceManager.cpp
d57a7ef9252964bc6c8471451d7bd395b0520cb8 24-Aug-2009 Chris Lattner <sabre@nondot.org> API changes to match llvm ToT.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79868 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
ourceManager.cpp
2ec1729793a77b86a31abd65da4b93cacbdf6b34 23-Aug-2009 Benjamin Kramer <benny.kra@googlemail.com> Replace cerr with errs().


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79854 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
ourceManager.cpp
6cb7c1a43b0c8f739d1f54b7fdae5ede86033496 23-Aug-2009 Benjamin Kramer <benny.kra@googlemail.com> Replace cerr with errs().


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79854 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
ourceManager.cpp
50353f11e6421455826f76023b745df8284938c9 23-Aug-2009 Douglas Gregor <doug.gregor@gmail.com> Don't install Clang libraries.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79824 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
7ebe97166a4d720a187ab08ba927027e0d32274c 23-Aug-2009 Douglas Gregor <dgregor@apple.com> Don't install Clang libraries.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79824 91177308-0d34-0410-b5e6-96231b3b80d8
akefile
9e2b9e01aeaf38e474da3acce29f2f751b727ad7 20-Aug-2009 Sanjiv Gupta <sanjiv.gupta@microchip.com> Issue an error if the user specifies parameters in a function marked as ISR.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79544 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
da3e03ec5d7161135bd90c0786421e8994bcc2f8 20-Aug-2009 Sanjiv Gupta <sanjiv.gupta@microchip.com> Issue an error if the user specifies parameters in a function marked as ISR.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79544 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f0ff32f7c7e1523df96ab0c415e687ddf5e9b386 19-Aug-2009 Eli Friedman <eli.friedman@gmail.com> Add TCE target to clang; patch by Mikael Lepistö.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79462 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
b63decfa6e1b165693f1fbfe52d5faec832968f7 19-Aug-2009 Eli Friedman <eli.friedman@gmail.com> Add TCE target to clang; patch by Mikael Lepistö.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79462 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
0433a02f13f468188837dfe7e084acabb8c9d562 19-Aug-2009 Daniel Dunbar <daniel@zuster.org> Switch to SmallString::str from SmallString::c_str.
- Several FIXMEs due to non-Twinification of IRBuilder.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79455 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
7765934ad7e157b5fcf925792a38e01b1edbcf8a 19-Aug-2009 Daniel Dunbar <daniel@zuster.org> Switch to SmallString::str from SmallString::c_str.
- Several FIXMEs due to non-Twinification of IRBuilder.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79455 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
8ba3de0bc0f150def1c892855f3beb5671cf6908 18-Aug-2009 Daniel Dunbar <daniel@zuster.org> Convert CreateTargetInfo to use a Triple instead of manul string munging.
- Patch by Yonggang Luo (with some formatting tweaks by Eli and myself).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79320 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
9d6fa61582b3a4c752ca745ae27b48afefce1ba3 18-Aug-2009 Daniel Dunbar <daniel@zuster.org> Convert CreateTargetInfo to use a Triple instead of manul string munging.
- Patch by Yonggang Luo (with some formatting tweaks by Eli and myself).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79320 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
6177437d712b72b9924e9c2782575c6c907e2a7d 17-Aug-2009 Jakob Stoklund Olesen <stoklund@2pi.dk> Support compilation for the blackfin back-end

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79271 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1eb434346f2e0dbc10d8fa72a9d01e4b0c2d7761 17-Aug-2009 Jakob Stoklund Olesen <stoklund@2pi.dk> Support compilation for the blackfin back-end

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79271 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
b42484294c23bdb2a706904ac06d3782795d506b 12-Aug-2009 Chris Lattner <sabre@nondot.org> improve path handling, patch by Baptiste Lepilleur!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78824 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
46730b261c46765c51a9aa83c2571a2a8705482a 12-Aug-2009 Chris Lattner <sabre@nondot.org> improve path handling, patch by Baptiste Lepilleur!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78824 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
f54f221a727289dc60865f2d6243ea16a671482b 12-Aug-2009 Chris Lattner <sabre@nondot.org> use the new llvm::Triple parsing stuffola for handling darwin version #'s.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78794 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
4c28b1cefe77dfd04ddf74599895b2f9796998c8 12-Aug-2009 Chris Lattner <sabre@nondot.org> use the new llvm::Triple parsing stuffola for handling darwin version #'s.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78794 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
43954311b4159a6f058ff19a5d66817afe0d025f 10-Aug-2009 Chris Lattner <sabre@nondot.org> fix a couple of problems with section attributes:

1. Passing something that isn't a string used to cause:
"argument to annotate attribute was not a string literal"
make it say "section attribute" instead.

2. Fix the location of the above message to point to the
bad argument instead of the section token.

3. Implement rdar://4341926, by diagnosing invalid section
specifiers in the frontend rather than letting them slip all
the way to the assembler (a QoI win).

An example of #3 is that we used to produce something like this:

/var/folders/n7/n7Yno9ihEm894640nJdSQU+++TI/-Tmp-//ccFPFGtT.s:2:Expected comma after segment-name
/var/folders/n7/n7Yno9ihEm894640nJdSQU+++TI/-Tmp-//ccFPFGtT.s:2:Rest of line ignored. 1st junk character valued 46 (.).

Daniel improved clang to use llvm_report_error, so now we got:

$ clang t.c -c
fatal error: error in backend: Global variable 'x' has an invalid section specifier 'sadf': mach-o section specifier
requires a segment and section separated by a comma.

with no loc info. Now we get:

$ clang t.c -fsyntax-only
t.c:4:30: error: argument to 'section' attribute is not valid for this target: mach-o section specifier requires a segment
and section separated by a comma
int x __attribute__((section("sadf")));
^

which is nice :)



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78586 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
797c3c4f5dc4fda735e55c6b5d6270a54cf6d263 10-Aug-2009 Chris Lattner <sabre@nondot.org> fix a couple of problems with section attributes:

1. Passing something that isn't a string used to cause:
"argument to annotate attribute was not a string literal"
make it say "section attribute" instead.

2. Fix the location of the above message to point to the
bad argument instead of the section token.

3. Implement rdar://4341926, by diagnosing invalid section
specifiers in the frontend rather than letting them slip all
the way to the assembler (a QoI win).

An example of #3 is that we used to produce something like this:

/var/folders/n7/n7Yno9ihEm894640nJdSQU+++TI/-Tmp-//ccFPFGtT.s:2:Expected comma after segment-name
/var/folders/n7/n7Yno9ihEm894640nJdSQU+++TI/-Tmp-//ccFPFGtT.s:2:Rest of line ignored. 1st junk character valued 46 (.).

Daniel improved clang to use llvm_report_error, so now we got:

$ clang t.c -c
fatal error: error in backend: Global variable 'x' has an invalid section specifier 'sadf': mach-o section specifier
requires a segment and section separated by a comma.

with no loc info. Now we get:

$ clang t.c -fsyntax-only
t.c:4:30: error: argument to 'section' attribute is not valid for this target: mach-o section specifier requires a segment
and section separated by a comma
int x __attribute__((section("sadf")));
^

which is nice :)



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78586 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
4e21ba4855b2fd685ac9843574482d1d5f0458f7 04-Aug-2009 Mike Stump <mrs@apple.com> Add armv7 support.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78092 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
59e657236236351623ddea0b3c87b60d209d40ab 04-Aug-2009 Mike Stump <mrs@apple.com> Add armv7 support.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78092 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
57f236f1fb6b7f2c2330d6a39dcc98f57836f7c2 16-Jul-2009 Anton Korobeynikov <asl@math.spbu.ru> Hook in s390x stuff into clang

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76099 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
89e887fd73dd87c1118e13ebddf11aed9e25b763 16-Jul-2009 Anton Korobeynikov <asl@math.spbu.ru> Hook in s390x stuff into clang

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76099 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
fa011bdce0fb4da854bbaee2e9038cad8470598b 16-Jul-2009 Chris Lattner <sabre@nondot.org> codegen string literals using private linkage now like llvm-gcc, eliminating
some target hooks.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75895 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
95b851e55c328af4b69da7bfc1124bf258c0ffe5 16-Jul-2009 Chris Lattner <sabre@nondot.org> codegen string literals using private linkage now like llvm-gcc, eliminating
some target hooks.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75895 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
2bcacb61cf94b71e5c87f29d517f8dc29fe3993e 14-Jul-2009 Alisdair Meredith <public@alisdairm.net> Basic support for C++0x unicode types. Support for literals will follow in an incremental patch

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75622 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
f5c209d23b20ada4a9b6235db50317239cbf6ae1 14-Jul-2009 Alisdair Meredith <public@alisdairm.net> Basic support for C++0x unicode types. Support for literals will follow in an incremental patch

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75622 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
25fff084d798d6c3996849bb0cfa371c0b6232af 13-Jul-2009 Chris Lattner <sabre@nondot.org> add netbsd support, patch by Krister Kalfridsson!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75492 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
b62bb2842f239e047b9b94174201f3abcfbeebb1 13-Jul-2009 Chris Lattner <sabre@nondot.org> add netbsd support, patch by Krister Kalfridsson!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75492 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
dab77f1143e8bb77b9107a81fa311af5355f87c5 12-Jul-2009 Chris Lattner <sabre@nondot.org> add push/pop semantics for diagnostics. Patch by Louis Gerbarg!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75431 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
04ae2df026b275aae5dddfc0db5ca55ff4e62179 12-Jul-2009 Chris Lattner <sabre@nondot.org> add push/pop semantics for diagnostics. Patch by Louis Gerbarg!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75431 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
cd2cb6657db128eb17ea680d7c81ddef0a69742c 08-Jul-2009 Duncan Sands <baldrick@free.fr> Correct FreeBSD target info, fixing PR4514.
Patch by Roman Divacky.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75003 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1e90faf4f218880999637db1a5cd670eb63e5abc 08-Jul-2009 Duncan Sands <baldrick@free.fr> Correct FreeBSD target info, fixing PR4514.
Patch by Roman Divacky.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75003 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
d75fd0bbe45561335190b1b78b95663c9179fa42 07-Jul-2009 Sanjiv Gupta <sanjiv.gupta@microchip.com> pic16 preproc defs.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74893 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
7f579b19b6f219d6c96002ac81bc2e8bb65911d1 07-Jul-2009 Sanjiv Gupta <sanjiv.gupta@microchip.com> pic16 preproc defs.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74893 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
96ada0288fcb79f90a854f6e6333164a04f75310 06-Jul-2009 Eli Friedman <eli.friedman@gmail.com> More tweaks to types for OpenBSD. Patch by Jonathan Gray.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74805 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
6036ebe330ff97223d7d226de6eb3a74af5aeb32 06-Jul-2009 Eli Friedman <eli.friedman@gmail.com> More tweaks to types for OpenBSD. Patch by Jonathan Gray.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74805 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1c79f4b84a044d060345621559fda5c1f74007a6 05-Jul-2009 Eli Friedman <eli.friedman@gmail.com> Per PR4506, fix the type of size_t on OpenBSD.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74795 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
624c1467809b409dcfa596b176ef45943442296b 05-Jul-2009 Eli Friedman <eli.friedman@gmail.com> Per PR4506, fix the type of size_t on OpenBSD.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74795 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
3c79eeefa6374946455ccdba3f46b94394ef0c9c 03-Jul-2009 Eli Friedman <eli.friedman@gmail.com> Add an intermediate typedef for __builtin_va_tag to make it a bit easier
to deal with for AST pretty-printing/rewriting. Patch by Abramo
Bagnara.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74752 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
dc043166e3a688b14367b71ba69f741e4a0216b2 03-Jul-2009 Eli Friedman <eli.friedman@gmail.com> Add an intermediate typedef for __builtin_va_tag to make it a bit easier
to deal with for AST pretty-printing/rewriting. Patch by Abramo
Bagnara.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74752 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
937331fdd6b863ec5ed0725405fb5b1666d588a1 01-Jul-2009 Douglas Gregor <doug.gregor@gmail.com> Two fixes to make Clang build on Visual C++ (again), from Alisdair Meredith.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74606 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
a3844922f685620002412df0a88d22393e5c1241 01-Jul-2009 Douglas Gregor <dgregor@apple.com> Two fixes to make Clang build on Visual C++ (again), from Alisdair Meredith.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74606 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
38e3180fb0d08290be62eb24c84a27e5ccdc5110 01-Jul-2009 Eli Friedman <eli.friedman@gmail.com> Fix for PR4192: fix the definition of int64_t on x86_64 Linux.

Note that I'm guessing that *BSD and Solaris do the same thing as Linux
here, but it's quite possible I'm wrong; if the following testcase
gives an error on x86-64 with gcc for any of those operating systems, please
tell me:

#include <stdint.h>

int64_t x; long x;



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74583 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
3c7b6e46c5f9bdbe0676c52d80df98b68b02be99 01-Jul-2009 Eli Friedman <eli.friedman@gmail.com> Fix for PR4192: fix the definition of int64_t on x86_64 Linux.

Note that I'm guessing that *BSD and Solaris do the same thing as Linux
here, but it's quite possible I'm wrong; if the following testcase
gives an error on x86-64 with gcc for any of those operating systems, please
tell me:

#include <stdint.h>

int64_t x; long x;



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74583 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
36565e5d6293d28804ad36c94bd5d878a13643b6 30-Jun-2009 Edwin Török <edwintorok@gmail.com> Reapply r74532, and inherit from OSTargetInfo instead of from Target.
'make test' passes now.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74539 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
5f6c19419184da428ad8982c1a5d706dbf4896ed 30-Jun-2009 Torok Edwin <edwintorok@gmail.com> Reapply r74532, and inherit from OSTargetInfo instead of from Target.
'make test' passes now.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74539 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
2d98f9f72adc9d4d64e5b47b3afc81b45ccd6cd0 30-Jun-2009 Edwin Török <edwintorok@gmail.com> Revert 74532 till I figure out why it breaks a bunch of tests.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74536 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
b0a5b2423c1fc8e2b1823c3c6c31bf3980e571ba 30-Jun-2009 Torok Edwin <edwintorok@gmail.com> Revert 74532 till I figure out why it breaks a bunch of tests.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74536 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
d1e86869e3e4532d02c7b4ab1197f23c9d234dd0 30-Jun-2009 Edwin Török <edwintorok@gmail.com> Use templates instead of creating a new class for each OS/Target combination.
This unifies all the targets supported by an OS into a template.
It also cleans up the differences between the darwin targets.
Also __LP64__ wasn't needed for *BSD, since x86-64 target defines it anyway.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74532 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
50dd810b22306d4c0460dac3545de73db6745d67 30-Jun-2009 Torok Edwin <edwintorok@gmail.com> Use templates instead of creating a new class for each OS/Target combination.
This unifies all the targets supported by an OS into a template.
It also cleans up the differences between the darwin targets.
Also __LP64__ wasn't needed for *BSD, since x86-64 target defines it anyway.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74532 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
7099c789f054f1e7480f498d60aa94b0326c285f 30-Jun-2009 Chris Lattner <sabre@nondot.org> Key decisions about 'bool' vs '_Bool' to be based on a new flag in langoptions.

This is simple enough, but then I thought it would be nice to make PrintingPolicy
get a LangOptions so that various things can key off "bool" and "C++" independently.
This spiraled out of control. There are many fixme's, but I think things are slightly
better than they were before.

One thing that can be improved: CFG should probably have an ASTContext pointer in it,
which would simplify its clients.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74493 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
e4f2142d00fa5fdb580c4e2413da91882d955381 30-Jun-2009 Chris Lattner <sabre@nondot.org> Key decisions about 'bool' vs '_Bool' to be based on a new flag in langoptions.

This is simple enough, but then I thought it would be nice to make PrintingPolicy
get a LangOptions so that various things can key off "bool" and "C++" independently.
This spiraled out of control. There are many fixme's, but I think things are slightly
better than they were before.

One thing that can be improved: CFG should probably have an ASTContext pointer in it,
which would simplify its clients.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74493 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
6d77d6ad00312bbc096fd478b297e41056df899a 30-Jun-2009 Daniel Dunbar <daniel@zuster.org> Use true/false instead of 1/0.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74479 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
811844d5eb35c7d14054f33f8676bcffb9584195 30-Jun-2009 Daniel Dunbar <daniel@zuster.org> Use true/false instead of 1/0.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74479 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
36a025107925e1483598c5311792a77f220b6fe0 30-Jun-2009 Daniel Dunbar <daniel@zuster.org> Don't define __KPRINTF_ATTRIBUTE__ unconditionally on OpenBSD.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74467 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
43a3643eaf6d411b43b01cbbf85a197ffdaba204 30-Jun-2009 Daniel Dunbar <daniel@zuster.org> Don't define __KPRINTF_ATTRIBUTE__ unconditionally on OpenBSD.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74467 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
64c77a1c70299f698a657361a247f12a503782fb 29-Jun-2009 Daniel Dunbar <daniel@zuster.org> OpenBSD support.
- Patch by Jonathan Gray!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74453 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f7b8eec37c8c8012fa525c71fb29a58c9f29beef 29-Jun-2009 Daniel Dunbar <daniel@zuster.org> OpenBSD support.
- Patch by Jonathan Gray!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74453 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
39e99a4bd7d690178f494899078d0723522d5247 29-Jun-2009 Bill Wendling <isanbard@gmail.com> Make the StackProtector bitfield use enums instead of obscure numbers.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74414 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
4ebe3e4c811a376c423a544f5e76ee2e96533324 29-Jun-2009 Bill Wendling <isanbard@gmail.com> Make the StackProtector bitfield use enums instead of obscure numbers.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74414 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
e1d4f5d6840e99b8345dd755ec4a335ff4539fcf 28-Jun-2009 Bill Wendling <isanbard@gmail.com> Add stack protector support to clang. This generates the 'ssp' and 'sspreq'
function attributes. There are predefined macros that are defined when stack
protectors are used: __SSP__=1 with -fstack-protector and __SSP_ALL__=2 with
-fstack-protector-all.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74405 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
45483f7a1b3e57b4603b141bee80596b2d4dd443 28-Jun-2009 Bill Wendling <isanbard@gmail.com> Add stack protector support to clang. This generates the 'ssp' and 'sspreq'
function attributes. There are predefined macros that are defined when stack
protectors are used: __SSP__=1 with -fstack-protector and __SSP_ALL__=2 with
-fstack-protector-all.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74405 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
2a310fe1518af351c8f64a1dc828c3f21e881129 26-Jun-2009 Nate Begeman <natebegeman@mac.com> OpenCL 1.0 Support: support "bool, true, false" tokens when compiling for OpenCL


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74224 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
72b60e35600f5789056f73eca35713a1b83b6594 26-Jun-2009 Nate Begeman <natebegeman@mac.com> OpenCL 1.0 Support: support "bool, true, false" tokens when compiling for OpenCL


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74224 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
949a4cfea0c4ec7c1979111a2e6b3e8d77afaeb0 25-Jun-2009 Argiris Kirtzidis <akyrtzi@gmail.com> Fix column checking for SourceManager::getLocation().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74194 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
081445cb66b28a633f02b5fba06807ef79e29f67 25-Jun-2009 Argyrios Kyrtzidis <akyrtzi@gmail.com> Fix column checking for SourceManager::getLocation().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74194 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
a8a69e1837cdb6ccba7c8fed5ecc28cd9a1ef2e1 24-Jun-2009 Chris Lattner <sabre@nondot.org> fix the type of wchar_t for windows, PR4417


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74083 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
85de9e75ecce165374faf20d7b4e843a1f63e720 24-Jun-2009 Chris Lattner <sabre@nondot.org> fix the type of wchar_t for windows, PR4417


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74083 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
07d94ac3d0994d794bb82f9642a717d61c6f2b6f 24-Jun-2009 Daniel Dunbar <daniel@zuster.org> Fix warning when building w/o asserts.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74020 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
5eee090e3880f3763a9a81a6780a84829f1c6bd0 24-Jun-2009 Daniel Dunbar <daniel@zuster.org> Fix warning when building w/o asserts.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74020 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
a9e9e0089d7fd4e5dc737a870b519a411a81fbdd 24-Jun-2009 Argiris Kirtzidis <akyrtzi@gmail.com> Introduce SourceManager::ísBeforeInTranslationUnit() which can compare 2 source locations and determine which one comes before the other, relative to the translation unit.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74014 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
2aa03d588bd2d3c73deb662880c2244bf2e384b9 24-Jun-2009 Argyrios Kyrtzidis <akyrtzi@gmail.com> Introduce SourceManager::ísBeforeInTranslationUnit() which can compare 2 source locations and determine which one comes before the other, relative to the translation unit.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74014 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
5912220b54135f50487aa2a7f7d3ef8e827dea71 23-Jun-2009 Chris Lattner <sabre@nondot.org> __APPLE_CC__ should only be set when building for darwin targets.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73934 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
7478bbfea8ec19962ba8e47d0b8b4de15f5a5943 23-Jun-2009 Chris Lattner <sabre@nondot.org> __APPLE_CC__ should only be set when building for darwin targets.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73934 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
7a12ac8c389cfd8fb4d6d15323bda180e7b74786 23-Jun-2009 Argiris Kirtzidis <akyrtzi@gmail.com> In SourceManager::createFileID missed setting ContentCache's FirstFID in another place.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73931 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
ea703f1218971511181765c37073c03e1437c5cc 23-Jun-2009 Argyrios Kyrtzidis <akyrtzi@gmail.com> In SourceManager::createFileID missed setting ContentCache's FirstFID in another place.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73931 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
219f3402cfbe84eac700c6908202f8952a258475 20-Jun-2009 Argiris Kirtzidis <akyrtzi@gmail.com> Slight modification to column checking inside SourceManager::getLocation().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73826 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
93edc3c874257077aac59db7f897cee984113db2 20-Jun-2009 Argyrios Kyrtzidis <akyrtzi@gmail.com> Slight modification to column checking inside SourceManager::getLocation().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73826 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
af0d4d517b43b7dd7dde06d27c5055b49f5fe0f5 20-Jun-2009 Argiris Kirtzidis <akyrtzi@gmail.com> Introduce SourceManager::getLocation() to get a source location out of a "file:line:column" triplet.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73823 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
10b46d2f0b976676d10681d73fe061b5ae409b36 20-Jun-2009 Argyrios Kyrtzidis <akyrtzi@gmail.com> Introduce SourceManager::getLocation() to get a source location out of a "file:line:column" triplet.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73823 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
ef5de7028439ca0849d78e2063409dabeceb5004 16-Jun-2009 Chris Lattner <sabre@nondot.org> follow-on to my patch: some targets (like sparc) do not
have target-specific builtins, and do not set the count.
Just default to 0 for these targets.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73510 91177308-0d34-0410-b5e6-96231b3b80d8
uiltins.cpp
ff1d4d97a191ca84a703ef8d6c71ef6934090c4d 16-Jun-2009 Chris Lattner <sabre@nondot.org> follow-on to my patch: some targets (like sparc) do not
have target-specific builtins, and do not set the count.
Just default to 0 for these targets.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73510 91177308-0d34-0410-b5e6-96231b3b80d8
uiltins.cpp
2b323a09520aeefc657a5be52d45dd286380b789 16-Jun-2009 Chris Lattner <sabre@nondot.org> my refactoring of builtins changed target-specific builtins to only be
registered when PCH wasn't being used. We should always install (in BuiltinInfo)
information about target-specific builtins, but we shouldn't register any builtin
identifier infos. This fixes the build of apps that use PCH and target specific
builtins together.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73492 91177308-0d34-0410-b5e6-96231b3b80d8
uiltins.cpp
030e8fe5aabe6a50ed7da3182df8cbce446bfeab 16-Jun-2009 Chris Lattner <sabre@nondot.org> my refactoring of builtins changed target-specific builtins to only be
registered when PCH wasn't being used. We should always install (in BuiltinInfo)
information about target-specific builtins, but we shouldn't register any builtin
identifier infos. This fixes the build of apps that use PCH and target specific
builtins together.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73492 91177308-0d34-0410-b5e6-96231b3b80d8
uiltins.cpp
a78418407762f4e287c58c549670fb6690145c67 15-Jun-2009 Douglas Gregor <doug.gregor@gmail.com> Base SFINAE error suppression counting on the class of an error, not
its (possibly-remapped) diagnostics. Thanks, Chris!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73390 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
8439fac3ce6c26db7982e34d119bf905b57eac91 15-Jun-2009 Douglas Gregor <dgregor@apple.com> Base SFINAE error suppression counting on the class of an error, not
its (possibly-remapped) diagnostics. Thanks, Chris!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73390 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
95d6c95238d03080803549be81139f03a098016e 14-Jun-2009 Douglas Gregor <doug.gregor@gmail.com> Update LLVM.

Implement support for C++ Substitution Failure Is Not An Error
(SFINAE), which says that errors that occur during template argument
deduction do *not* produce diagnostics and do not necessarily make a
program ill-formed. Instead, template argument deduction silently
fails. This is currently implemented for template argument deduction
during matching of class template partial specializations, although
the mechanism will also apply to template argument deduction for
function templates. The scheme is simple:

- If we are in a template argument deduction context, any diagnostic
that is considered a SFINAE error (or warning) will be
suppressed. The error will be propagated up the call stack via the
normal means.
- By default, all warnings and errors are SFINAE errors. Add the
NoSFINAE class to a diagnostic in the .td file to make it a hard
error (e.g., for access-control violations).

Note that, to make this fully work, every place in Sema that emits an
error *and then immediately recovers* will need to check
Sema::isSFINAEContext() to determine whether it must immediately
return an error rather than recovering.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73332 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
5e9f35c7cb61aea46f56d46c77cbcf47c0cf28ba 14-Jun-2009 Douglas Gregor <dgregor@apple.com> Update LLVM.

Implement support for C++ Substitution Failure Is Not An Error
(SFINAE), which says that errors that occur during template argument
deduction do *not* produce diagnostics and do not necessarily make a
program ill-formed. Instead, template argument deduction silently
fails. This is currently implemented for template argument deduction
during matching of class template partial specializations, although
the mechanism will also apply to template argument deduction for
function templates. The scheme is simple:

- If we are in a template argument deduction context, any diagnostic
that is considered a SFINAE error (or warning) will be
suppressed. The error will be propagated up the call stack via the
normal means.
- By default, all warnings and errors are SFINAE errors. Add the
NoSFINAE class to a diagnostic in the .td file to make it a hard
error (e.g., for access-control violations).

Note that, to make this fully work, every place in Sema that emits an
error *and then immediately recovers* will need to check
Sema::isSFINAEContext() to determine whether it must immediately
return an error rather than recovering.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73332 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
c46fcddc0bb2256110a710801f34a560453e3549 14-Jun-2009 Chris Lattner <sabre@nondot.org> Sink the BuiltinInfo object from ASTContext into the
preprocessor and initialize it early in clang-cc. This
ensures that __has_builtin works in all modes, not just
when ASTContext is around.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73319 91177308-0d34-0410-b5e6-96231b3b80d8
uiltins.cpp
1b63e4f732dbc73d90abf886b4d21f8e3a165f6d 14-Jun-2009 Chris Lattner <sabre@nondot.org> Sink the BuiltinInfo object from ASTContext into the
preprocessor and initialize it early in clang-cc. This
ensures that __has_builtin works in all modes, not just
when ASTContext is around.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73319 91177308-0d34-0410-b5e6-96231b3b80d8
uiltins.cpp
99ca9d64d362891c197bfda097e4994c41a67690 14-Jun-2009 Chris Lattner <sabre@nondot.org> move the various builtins stuff from libast to libbasic. This
fixes a layering violation in lib/Basic/Targets.cpp.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73318 91177308-0d34-0410-b5e6-96231b3b80d8
uiltins.cpp
MakeLists.txt
argets.cpp
6b15cdc1312f8fc45c86ee75e2a85106700e97f6 14-Jun-2009 Chris Lattner <sabre@nondot.org> move the various builtins stuff from libast to libbasic. This
fixes a layering violation in lib/Basic/Targets.cpp.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73318 91177308-0d34-0410-b5e6-96231b3b80d8
uiltins.cpp
MakeLists.txt
argets.cpp
ea39092a252e62e7f7fa52e6418e90a6bc46ff6d 09-Jun-2009 Daniel Dunbar <daniel@zuster.org> Add stack alignment to x86_64 target data.
- <rdar://problem/6948443> WARNING: Linking two modules of different data
layouts!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73093 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
9e7d596b5450ac3998b419e44b82a73002936858 09-Jun-2009 Daniel Dunbar <daniel@zuster.org> Add stack alignment to x86_64 target data.
- <rdar://problem/6948443> WARNING: Linking two modules of different data
layouts!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73093 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
b28055e70d5cb10e92e1f48c1271b0ef2cd69bb9 08-Jun-2009 Eli Friedman <eli.friedman@gmail.com> Minor tweaks to the Windows target.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73083 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
9c2f84eded86c086446ec25101cc65b0eb38da09 08-Jun-2009 Eli Friedman <eli.friedman@gmail.com> Minor tweaks to the Windows target.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73083 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
7e17aed44bda5f10d93913125ad38cda83a0aaff 08-Jun-2009 Eli Friedman <eli.friedman@gmail.com> PR4346: add "R" asm register constraint.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73081 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
12b2da0350b24b396f87c8479234ec57d875f72f 08-Jun-2009 Eli Friedman <eli.friedman@gmail.com> PR4346: add "R" asm register constraint.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73081 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
6b6ca949df5444625f4b527ae2da1d3cb8fc03fe 08-Jun-2009 Eli Friedman <eli.friedman@gmail.com> Misc minor fixes for clang for the Windows target.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73050 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
abc4e32603bd9d3e392e23762cc366e45d772685 08-Jun-2009 Eli Friedman <eli.friedman@gmail.com> Misc minor fixes for clang for the Windows target.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73050 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
69400adadbdd7ab4b9b70dad3da21554f14442aa 07-Jun-2009 Zhongxing Xu <xuzhongxing@gmail.com> Remove dead code: 'NewEntry' is not used.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73027 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
a106fea080c9a9fd50c9e5fc26b9752c43614639 07-Jun-2009 Zhongxing Xu <xuzhongxing@gmail.com> Remove dead code: 'NewEntry' is not used.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73027 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
d9389beef9a889d95ea8417cc44db22e30ad9523 05-Jun-2009 Eli Friedman <eli.friedman@gmail.com> Move CharIsSigned from TargetInfo to LangOptions.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72928 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
15b91764d08e886391c865c4a444d7b51141c284 05-Jun-2009 Eli Friedman <eli.friedman@gmail.com> Move CharIsSigned from TargetInfo to LangOptions.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72928 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
eff0a42db6b07f91e3a7e7f78c209707b81a3ef8 05-Jun-2009 Eli Friedman <eli.friedman@gmail.com> Move a couple Darwin-specific defines into getDarwinDefines.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72900 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
2de4feeef29c837466a5f109e75f37ec2022bb28 05-Jun-2009 Eli Friedman <eli.friedman@gmail.com> Move a couple Darwin-specific defines into getDarwinDefines.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72900 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
b9c50b4446153d6c3ad2f9d8d5b29a2364aee98e 03-Jun-2009 Eli Friedman <eli.friedman@gmail.com> Back out r72764; I should have looked more carefully before committing
this. The correct replacement for "Y" and "Yt" is "x".



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72765 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
bb32e6dc801746fa3e09446f3730eb613fb59c2e 03-Jun-2009 Eli Friedman <eli.friedman@gmail.com> Back out r72764; I should have looked more carefully before committing
this. The correct replacement for "Y" and "Yt" is "x".



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72765 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
a3b7514ad82317129b176682d167af9cd669a1cc 03-Jun-2009 Eli Friedman <eli.friedman@gmail.com> PR3678: Add support for "Yt" asm register constraint.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72764 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
a3c29e11b8354af47ec21e3f8eb459e087c6f4b8 03-Jun-2009 Eli Friedman <eli.friedman@gmail.com> PR3678: Add support for "Yt" asm register constraint.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72764 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
ae8f1e8dc923784b70c18dd6cf82e5d1722b27d9 02-Jun-2009 Sanjiv Gupta <sanjiv.gupta@microchip.com> Add floating point details to PIC16 Target.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72713 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
9eb4cef6bc7f6ef9f1fa2ae688935727968c486f 02-Jun-2009 Sanjiv Gupta <sanjiv.gupta@microchip.com> Add floating point details to PIC16 Target.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72713 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
468ca6d53a966e286f9e16ba4d5b3096ebdc7e9b 29-May-2009 Eli Friedman <eli.friedman@gmail.com> Add a couple missing ARM defines.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72583 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
19262421fa6985dedd03df512a758238682db9d3 29-May-2009 Eli Friedman <eli.friedman@gmail.com> Add a couple missing ARM defines.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72583 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
a456b7faf9914b6963051965462506d5cc316221 22-May-2009 Eli Friedman <eli.friedman@gmail.com> A few more tweaks for Solaris; please correct me if it's wrong somehow.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72240 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
09c3a6d72540e734d97fa36e3fca9d0a37d72ebe 22-May-2009 Eli Friedman <eli.friedman@gmail.com> A few more tweaks for Solaris; please correct me if it's wrong somehow.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72240 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
5415abdb5ca3b3265be14aec48495d33bfb7a0d8 22-May-2009 Douglas Gregor <doug.gregor@gmail.com> Improve target support for Solaris.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72237 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
163a7c79eaa9eff7d4ced3e4b62baa628b9538b1 22-May-2009 Douglas Gregor <dgregor@apple.com> Improve target support for Solaris.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72237 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
e069049301f88ae1e919a86ae103c2055715d984 18-May-2009 Daniel Dunbar <daniel@zuster.org> Avoid potential out-of-bounds access in SourceManager::getLineNumber.
- Chris, please see added FIXMEs.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72019 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
4106d696d7d0725fcd442fdda28a07049d47c573 18-May-2009 Daniel Dunbar <daniel@zuster.org> Avoid potential out-of-bounds access in SourceManager::getLineNumber.
- Chris, please see added FIXMEs.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72019 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
78a2f41e566e3b34b99bf26ace2e71c6bc299b9d 17-May-2009 Eli Friedman <eli.friedman@gmail.com> Targets without long long should reduce the size of intmax_t
accordingly.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71966 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
3f7a5310d43ea58c07d06965b46718a8012b1f76 17-May-2009 Eli Friedman <eli.friedman@gmail.com> Targets without long long should reduce the size of intmax_t
accordingly.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71966 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f595559306b5b53fb954e74b33c7cabc8a93845e 08-May-2009 Anton Korobeynikov <asl@math.spbu.ru> Provide dummy va_list typedef for msp430

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71233 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
eb71685510e0640b43e34ae9b567dcadb64075ee 08-May-2009 Anton Korobeynikov <asl@math.spbu.ru> Provide dummy va_list typedef for msp430

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71233 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
c2e55de49d4485f58a2cdb06f63ecc6504733575 06-May-2009 Daniel Dunbar <daniel@zuster.org> Handle -march for the LLVM recognized cpu names.
- x86 target feature handling should not be feature complete, even if
the code quality is lacking.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71123 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
3ac79049abf396487546e8807e8763403f444a07 06-May-2009 Daniel Dunbar <daniel@zuster.org> Handle -march for the LLVM recognized cpu names.
- x86 target feature handling should not be feature complete, even if
the code quality is lacking.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71123 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
0838f96643db1611a52e015733f94b19b8a5d52d 06-May-2009 Daniel Dunbar <daniel@zuster.org> More x86 target feature support.
- Apologies for the extremely gross code duplication, I want to get
this working and then decide how to get this information out of the
back end.

- This replaces -m[no-]sse4[12] by -m[no-]sse4, it appears gcc
doesn't distinguish them?

- -msse, etc. now properly disable/enable related features.

- Don't always define __SSE3__...

- The main missing functionality bit here is that we don't initialize
the features based on the CPU for all -march options.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71117 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
17ca3638e852ba81f389e9f896ed0420b52ae606 06-May-2009 Daniel Dunbar <daniel@zuster.org> More x86 target feature support.
- Apologies for the extremely gross code duplication, I want to get
this working and then decide how to get this information out of the
back end.

- This replaces -m[no-]sse4[12] by -m[no-]sse4, it appears gcc
doesn't distinguish them?

- -msse, etc. now properly disable/enable related features.

- Don't always define __SSE3__...

- The main missing functionality bit here is that we don't initialize
the features based on the CPU for all -march options.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71117 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
106c79a6e35f5b8ea256506ea5b73244f6e483b9 06-May-2009 Daniel Dunbar <daniel@zuster.org> Tweak x86 -mcpu defaults.
- Default to yonah on Darwin (to get SSE3).

- Default to Pentium4 (32-bit) and x86-64 (64-bit) on
non-Darwin. Welcome to the 21st century.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71069 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
500aec477c82660adda912c35b634006017933be 06-May-2009 Daniel Dunbar <daniel@zuster.org> Tweak x86 -mcpu defaults.
- Default to yonah on Darwin (to get SSE3).

- Default to Pentium4 (32-bit) and x86-64 (64-bit) on
non-Darwin. Welcome to the 21st century.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71069 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f803ad8e9f634c7462466c16294528c0dade1848 06-May-2009 Chris Lattner <sabre@nondot.org> Fix rdar://6860124 - invalid input constraint 'J' in asm
This recognizes all the target-independent constant constraints
that have target-specific meanings.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71064 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
1d13879044344c06d2933c268391ab8a2a2f46e7 06-May-2009 Chris Lattner <sabre@nondot.org> Fix rdar://6860124 - invalid input constraint 'J' in asm
This recognizes all the target-independent constant constraints
that have target-specific meanings.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71064 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
07181d709860d06026afa3b4ee5b6a65b48c9005 06-May-2009 Daniel Dunbar <daniel@zuster.org> Improve handling of (X86) target features.
- This is a WIP...

- This adds -march= handling to the driver, and fixes the defaulting
of -mcpu on Darwin (which was using the wrong test).

Instead of handling -m{sse, ...} in the driver, pass them to clang-cc as
-target-feature [+-]name

In clang-cc, communicate with the (clang) target to discover the legal
features of a target, and the features which are enabled based on
-mcpu. This is currently hardcoded just enough to not be a feature
regression, we need to get this information from the backend's
TableGen information somehow.

This is used to construct the full list of features which are being
used, which is in turn used to initialize the predefines.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71061 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
868bd0aa9281929ef50d2e9a8c82a036906f53f5 06-May-2009 Daniel Dunbar <daniel@zuster.org> Improve handling of (X86) target features.
- This is a WIP...

- This adds -march= handling to the driver, and fixes the defaulting
of -mcpu on Darwin (which was using the wrong test).

Instead of handling -m{sse, ...} in the driver, pass them to clang-cc as
-target-feature [+-]name

In clang-cc, communicate with the (clang) target to discover the legal
features of a target, and the features which are enabled based on
-mcpu. This is currently hardcoded just enough to not be a feature
regression, we need to get this information from the backend's
TableGen information somehow.

This is used to construct the full list of features which are being
used, which is in turn used to initialize the predefines.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71061 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
954bd3fb831e20017c986cf78d739d517dfe0e96 03-May-2009 Anton Korobeynikov <asl@math.spbu.ru> Hook msp430 in

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70774 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
73c64e5fb9c69bc1bb6af0e0b089875d088e0434 03-May-2009 Anton Korobeynikov <asl@math.spbu.ru> Hook msp430 in

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70774 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
e7772383ce8ee572ce9c9a7e8dcac9c8e8b68274 03-May-2009 Anton Korobeynikov <asl@math.spbu.ru> Whitespace cleanup

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70773 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
a7c4717f5fb40847a79c0013a8ce8f86940be288 03-May-2009 Anton Korobeynikov <asl@math.spbu.ru> Whitespace cleanup

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70773 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
5b6ac53a46c10bd9126dfa1a5d1d87635f824f87 02-May-2009 Chris Lattner <sabre@nondot.org> when creating custom warning diagnostics, do not attempt to map
them with -Werror. Custom diags cannot be mapped, and this makes
-Werror cause a determinstic crash for the checker and other
clients of the custom diagnostics machinery. rdar://6816191


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70639 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
a7e1898e6b84ed7911d1f25c975b27b78a4950cb 02-May-2009 Chris Lattner <sabre@nondot.org> when creating custom warning diagnostics, do not attempt to map
them with -Werror. Custom diags cannot be mapped, and this makes
-Werror cause a determinstic crash for the checker and other
clients of the custom diagnostics machinery. rdar://6816191


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70639 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
e695d8c916919c401f324e02d1c1b3675ddf9f2c 28-Apr-2009 Eli Friedman <eli.friedman@gmail.com> Simplify the scheme used for keywords, and change the classification
scheme to be more useful.

The new scheme introduces a set of categories that should be more
readable, and also reflects what we want to consider as an extension
more accurately. Specifically, it makes the "what is a keyword"
determination accurately reflect whether the keyword is a GNU or
Microsoft extension.

I also introduced separate flags for keyword aliases; this is useful
because the classification of the aliases is mostly unrelated to the
classification of the original keyword.

This patch treats anything that's in the implementation
namespace (prefixed with "__", or "_X" where "X" is any upper-case
letter) as a keyword without marking it as an extension. This is
consistent with the standards in that an implementation is allowed to define
arbitrary extensions in the implementation namespace without violating
the standard. This gets rid of all the nasty "extension used" warnings
for stuff like __attribute__ in -pedantic mode. We still warn for
extensions outside of the the implementation namespace, like typeof.
If someone wants to implement -Wextensions or something like that, we
could add additional information to the keyword table.

This also removes processing for the unused "Boolean" language option;
such an extension isn't supported on any other C implementation, so I
don't see any point to adding it.

The changes to test/CodeGen/inline.c are required because previously, we
weren't actually disabling the "inline" keyword in -std=c89 mode.

I'll remove Boolean and NoExtensions from LangOptions in a follow-up
commit.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70281 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
eb32fde032a250091134db56a3aeaea6b09f6594 28-Apr-2009 Eli Friedman <eli.friedman@gmail.com> Simplify the scheme used for keywords, and change the classification
scheme to be more useful.

The new scheme introduces a set of categories that should be more
readable, and also reflects what we want to consider as an extension
more accurately. Specifically, it makes the "what is a keyword"
determination accurately reflect whether the keyword is a GNU or
Microsoft extension.

I also introduced separate flags for keyword aliases; this is useful
because the classification of the aliases is mostly unrelated to the
classification of the original keyword.

This patch treats anything that's in the implementation
namespace (prefixed with "__", or "_X" where "X" is any upper-case
letter) as a keyword without marking it as an extension. This is
consistent with the standards in that an implementation is allowed to define
arbitrary extensions in the implementation namespace without violating
the standard. This gets rid of all the nasty "extension used" warnings
for stuff like __attribute__ in -pedantic mode. We still warn for
extensions outside of the the implementation namespace, like typeof.
If someone wants to implement -Wextensions or something like that, we
could add additional information to the keyword table.

This also removes processing for the unused "Boolean" language option;
such an extension isn't supported on any other C implementation, so I
don't see any point to adding it.

The changes to test/CodeGen/inline.c are required because previously, we
weren't actually disabling the "inline" keyword in -std=c89 mode.

I'll remove Boolean and NoExtensions from LangOptions in a follow-up
commit.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70281 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
578851959507ebbfcbfc14a795f0ec9bda8a4462 27-Apr-2009 Douglas Gregor <doug.gregor@gmail.com> Be more careful in our teardown of the PCHReader after deciding to
ignore a PCH file.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70251 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
2bf1eb09f06a9792fa94dff0703f2aa2c4bace2a 27-Apr-2009 Douglas Gregor <dgregor@apple.com> Be more careful in our teardown of the PCHReader after deciding to
ignore a PCH file.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70251 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
6cc5d1953169b8efbb5a86fff4d2b18de3b77579 27-Apr-2009 Douglas Gregor <doug.gregor@gmail.com> Implement caching of stat() calls for precompiled headers, which is
essentially the same thing we do with pretokenized headers. stat()
caching improves performance of the Cocoa-prefixed "Hello, World" by
45%.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70223 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
4fed3f47f6b9e31d603c5c2d1f6d8ec2e1241e57 27-Apr-2009 Douglas Gregor <dgregor@apple.com> Implement caching of stat() calls for precompiled headers, which is
essentially the same thing we do with pretokenized headers. stat()
caching improves performance of the Cocoa-prefixed "Hello, World" by
45%.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70223 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
32e231c5db47643c2d0b131ce193289613b3f361 27-Apr-2009 Douglas Gregor <doug.gregor@gmail.com> Load most of the source manager's information lazily from the PCH
file. In particular, only eagerly load source location entries for
files and for the predefines buffer. Other buffers and
macro-instantiation source location entries are loaded lazily.

With the Cocoa-prefixed "Hello, World", we only load 815/26555 source
location entities. This halves the amount of user time we spend in
this "Hello, World" program with -fsyntax-only (down to .007s).

This optimization is part 1 of 2 for the source manager. This
eliminates most of the user time in loading a PCH file. We still spend
too much time initialize File structures (especially in the calls to
stat), so we need to either make the loading of source location
entries for files lazy or import the stat cache from the PTH
implementation.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70196 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
7f94b0b0c6791013d2f72ced9b4bedd3b23673a6 27-Apr-2009 Douglas Gregor <dgregor@apple.com> Load most of the source manager's information lazily from the PCH
file. In particular, only eagerly load source location entries for
files and for the predefines buffer. Other buffers and
macro-instantiation source location entries are loaded lazily.

With the Cocoa-prefixed "Hello, World", we only load 815/26555 source
location entities. This halves the amount of user time we spend in
this "Hello, World" program with -fsyntax-only (down to .007s).

This optimization is part 1 of 2 for the source manager. This
eliminates most of the user time in loading a PCH file. We still spend
too much time initialize File structures (especially in the calls to
stat), so we need to either make the loading of source location
entries for files lazy or import the stat cache from the PTH
implementation.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70196 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
ce066715485bcbaef75127726123466f334ae488 27-Apr-2009 Douglas Gregor <doug.gregor@gmail.com> Some fixes for PCH (de-)serialization of Objective-C AST nodes:
- Deal with the Receiver/ClassInfo shared storage in ObjCMessageExpr
- Implement PCH support for ImplicitParamDecl
- Fix the handling of the body of an ObjCMethodDecl
- Several cast -> cast_or_null fixes
- Make Selector::getIdentifierInfoForSlot work for 1-argument, NULL
selectors.
- Make Selector::getAsString() work with NULL selectors.
- Fix the names of VisitObjCAtCatchStmt and VisitObjCAtFinallyStmt
in the PCH reader and writer; these were never getting called.

At this point, all of the pch-test tests pass for C and Objective-C.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70163 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
405bad07391494d2eb025f8222c256c66b56e5f8 27-Apr-2009 Douglas Gregor <dgregor@apple.com> Some fixes for PCH (de-)serialization of Objective-C AST nodes:
- Deal with the Receiver/ClassInfo shared storage in ObjCMessageExpr
- Implement PCH support for ImplicitParamDecl
- Fix the handling of the body of an ObjCMethodDecl
- Several cast -> cast_or_null fixes
- Make Selector::getIdentifierInfoForSlot work for 1-argument, NULL
selectors.
- Make Selector::getAsString() work with NULL selectors.
- Fix the names of VisitObjCAtCatchStmt and VisitObjCAtFinallyStmt
in the PCH reader and writer; these were never getting called.

At this point, all of the pch-test tests pass for C and Objective-C.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70163 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
9eb395f7173bcde053cafd7b575f12f973f583b5 26-Apr-2009 Chris Lattner <sabre@nondot.org> in a tied operand, don't copy over the name or constraint string, just the flags.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70137 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
d68876176a0d2c19e3864e7d38f6036c4f72f0a3 26-Apr-2009 Chris Lattner <sabre@nondot.org> in a tied operand, don't copy over the name or constraint string, just the flags.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70137 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
0cd323da459fbce4e19d1bbf2923afe80bb39e44 26-Apr-2009 Chris Lattner <sabre@nondot.org> pull operands names "[foo]" into ConstraintInfo.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70136 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
2819fa85651526d59ade4fdc9da2cadd7b132973 26-Apr-2009 Chris Lattner <sabre@nondot.org> pull operands names "[foo]" into ConstraintInfo.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70136 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
9f8e50205526b02ae170d4e0f0b10bf0b3e66f87 26-Apr-2009 Chris Lattner <sabre@nondot.org> pull the constraint string into the ConstraintInfo struct
instead of passing it around in addition to it.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70135 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
432c86969eced2ce658b3f3f2aa7407c8864f21b 26-Apr-2009 Chris Lattner <sabre@nondot.org> pull the constraint string into the ConstraintInfo struct
instead of passing it around in addition to it.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70135 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
c49cc1a57583d78783137ff7914526617d032af7 26-Apr-2009 Chris Lattner <sabre@nondot.org> change TargetInfo::ConstraintInfo to be a struct that contains
the enum along with some other data.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70114 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
44def070435a2b5d67f0534f7a3a85a7389d60f2 26-Apr-2009 Chris Lattner <sabre@nondot.org> change TargetInfo::ConstraintInfo to be a struct that contains
the enum along with some other data.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70114 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
eccb51d39a22a7cd1b4c61fedf43416a42990542 26-Apr-2009 Douglas Gregor <doug.gregor@gmail.com> Lazily load the controlling macros for all of the headers known in the
PCH file. In the Cocoa-prefixed "Hello, World" benchmark, this takes
us from reading 503 identifiers down to 37 and from 470 macros down to
4. It also results in an 8% performance improvement.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70094 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
8c5a760b82e73ed90b560090772db97e2ae27b09 26-Apr-2009 Douglas Gregor <dgregor@apple.com> Lazily load the controlling macros for all of the headers known in the
PCH file. In the Cocoa-prefixed "Hello, World" benchmark, this takes
us from reading 503 identifiers down to 37 and from 470 macros down to
4. It also results in an 8% performance improvement.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70094 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
433d972221fd4a112c94e20e8b160f3b226a29b9 23-Apr-2009 Chris Lattner <sabre@nondot.org> some arm triples have weird characters in them, just fuzzy match
on armv* to be more compatible


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69864 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
5b37dc03803621f8b4de3f42b2d1988a1b410bda 23-Apr-2009 Chris Lattner <sabre@nondot.org> some arm triples have weird characters in them, just fuzzy match
on armv* to be more compatible


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69864 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
608ff6223083952584ba0ada6d70070bbc2f045f 22-Apr-2009 Douglas Gregor <doug.gregor@gmail.com> Remove the serialization code that predates precompiled
headers. Future approaches to (de-)serializing ASTs will be based on
the PCH infrastructure.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69828 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
ileManager.cpp
dentifierTable.cpp
angOptions.cpp
ourceLocation.cpp
ourceManager.cpp
370187c8a3e96517c943329f2511737a04b85450 22-Apr-2009 Douglas Gregor <dgregor@apple.com> Remove the serialization code that predates precompiled
headers. Future approaches to (de-)serializing ASTs will be based on
the PCH infrastructure.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69828 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
ileManager.cpp
dentifierTable.cpp
angOptions.cpp
ourceLocation.cpp
ourceManager.cpp
6b27fc3358837d5c8f59ae2f05fe36394d20db42 22-Apr-2009 Chris Lattner <sabre@nondot.org> Add missing dependency, patch by Jason Haslam!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69819 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
25bcbaf55691f15db3e2bbf7b4c53056a04c6a54 22-Apr-2009 Chris Lattner <sabre@nondot.org> Add missing dependency, patch by Jason Haslam!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69819 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
88b4e51f1f1d676f260b6b2a0affbbd55afa1f0b 21-Apr-2009 Sanjiv Gupta <sanjiv.gupta@microchip.com> Pass and return aggregate types directly to function calls.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69668 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
70aa5f9e9f3ec77327f701562efc53d7c36c5843 21-Apr-2009 Sanjiv Gupta <sanjiv.gupta@microchip.com> Pass and return aggregate types directly to function calls.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69668 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
0ecc9514dd8a3c6cc2f2c1302f5ce3ec6c62b500 20-Apr-2009 Daniel Dunbar <daniel@zuster.org> Don't crash in the diagnostic printer if we happen to get passed a
null string / identifier.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69575 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
e46e354ecb9a04c8d3724ae2b0f95f4424e3f69c 20-Apr-2009 Daniel Dunbar <daniel@zuster.org> Don't crash in the diagnostic printer if we happen to get passed a
null string / identifier.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69575 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
9b343070dcd19f948a392caf8a1b6cd8ed0a8b8d 20-Apr-2009 Chris Lattner <sabre@nondot.org> move group twiddling options into Diagnostic.cpp instead of
Warnings.cpp. Warnings.cpp now doesn't need to #include
tblgen produced output directly.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69559 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
3bc172bc6a787842db6fea351cf6929539fca70d 20-Apr-2009 Chris Lattner <sabre@nondot.org> move group twiddling options into Diagnostic.cpp instead of
Warnings.cpp. Warnings.cpp now doesn't need to #include
tblgen produced output directly.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69559 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
8f5751758930cdecf2768a506c1614df44a598ea 19-Apr-2009 Eli Friedman <eli.friedman@gmail.com> Add target property for whether thread-local storage is supported.
Let me know if I messed up for some target. Note that for Windows, we
should be able to support it (MSVC supports "__declspec(thread)"), but
I'm pretty sure LLVM doesn't know how to generate the correct code.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69552 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
b030f0272500c6c5602f587ac029ee0dc0e5a05c 19-Apr-2009 Eli Friedman <eli.friedman@gmail.com> Add target property for whether thread-local storage is supported.
Let me know if I messed up for some target. Note that for Windows, we
should be able to support it (MSVC supports "__declspec(thread)"), but
I'm pretty sure LLVM doesn't know how to generate the correct code.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69552 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
25ac1c16a52867bbe8d202321efab6d234be5bd9 19-Apr-2009 Chris Lattner <sabre@nondot.org> actually just do this on all x86 targets, it won't hurt
non-glibc ones.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69528 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
5417544b42581366f45d8164f9cbbd1a2e99c485 19-Apr-2009 Chris Lattner <sabre@nondot.org> actually just do this on all x86 targets, it won't hurt
non-glibc ones.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69528 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
919a57b0f109fa2245d00736a3187741fe32bf40 19-Apr-2009 Chris Lattner <sabre@nondot.org> Define __NO_MATH_INLINES on linux/x86 so that we don't get inline
functions in glibc header files that use FP Stack inline asm which the
backend can't deal with (PR879).

This "fixes" PR3970 for linux. Other affected systems should do similar
things. Maybe this should just go to the general i386/x86-64 sections?



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69527 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
09b5cc69f0f979e4fb0dbf24e43ced5ffadd0a84 19-Apr-2009 Chris Lattner <sabre@nondot.org> Define __NO_MATH_INLINES on linux/x86 so that we don't get inline
functions in glibc header files that use FP Stack inline asm which the
backend can't deal with (PR879).

This "fixes" PR3970 for linux. Other affected systems should do similar
things. Maybe this should just go to the general i386/x86-64 sections?



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69527 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
a8a1f612ddc095da5ce8c44297637888f78a3fd9 16-Apr-2009 Chris Lattner <sabre@nondot.org> optimize and comment GetDiagInfo.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69273 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
87d854ebedb43a9ff0f55591821dc5600984e479 16-Apr-2009 Chris Lattner <sabre@nondot.org> optimize and comment GetDiagInfo.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69273 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
3bce75be7d8dbcd25ef33ea153660a63169e2112 16-Apr-2009 Chris Lattner <sabre@nondot.org> merge several scattered tables into StaticDiagInfo.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69272 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
121f60c2aa51eae81eac75a9bd8c076140896f3d 16-Apr-2009 Chris Lattner <sabre@nondot.org> merge several scattered tables into StaticDiagInfo.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69272 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
542429cf7fabdd576cd2a371ba24a332e7346ef2 16-Apr-2009 Chris Lattner <sabre@nondot.org> Implement Diagnostic::getWarningOptionForDiag with information from tblgen,
this implements -fdiagnostics-show-option in clang-cc.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69271 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
33dd2822f3972afe99b61315a890f8bad8ee5d7f 16-Apr-2009 Chris Lattner <sabre@nondot.org> Implement Diagnostic::getWarningOptionForDiag with information from tblgen,
this implements -fdiagnostics-show-option in clang-cc.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69271 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
8ee040e4581ec7530eae4b689ab7a4a9c9ce9bbd 16-Apr-2009 Chris Lattner <sabre@nondot.org> tblgen is now passing diagnostic group information in the .inc file, ignore it everywhere.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69269 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
19cbb44e3c4f2181dafa2ab92d3e3a26619b71d9 16-Apr-2009 Chris Lattner <sabre@nondot.org> tblgen is now passing diagnostic group information in the .inc file, ignore it everywhere.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69269 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
a96ec3bcfecbf4d1a9b4b6523060eb591a905810 16-Apr-2009 Chris Lattner <sabre@nondot.org> implement framework for -fdiagnostics-show-option, but tblgen isn't
passing down the right info yet.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69268 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
d51d74a3e89c5e5fc9bfd2814996a5feab6dc932 16-Apr-2009 Chris Lattner <sabre@nondot.org> implement framework for -fdiagnostics-show-option, but tblgen isn't
passing down the right info yet.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69268 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
85b1ac8086b3ceaf6602590c5bb0236150ae0d7c 16-Apr-2009 Chris Lattner <sabre@nondot.org> move handling of -pedantic and -pedantic-errors into Diagnostics,
out of Warnings.cpp. This simplifies warnings.cpp and makes it more
efficient.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69266 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
b54b276a920246c595a0498da281821eb9d22996 16-Apr-2009 Chris Lattner <sabre@nondot.org> move handling of -pedantic and -pedantic-errors into Diagnostics,
out of Warnings.cpp. This simplifies warnings.cpp and makes it more
efficient.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69266 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
8444dd14fb028ecd77751405c8be4ea8686ce6f1 16-Apr-2009 Chris Lattner <sabre@nondot.org> arrange for -Wno-error=foo warnings to be immune to -Werror as
they are supposed to be.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69265 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
2b07d8fe9e8a8ba12d64066632e17a9a5308a12e 16-Apr-2009 Chris Lattner <sabre@nondot.org> arrange for -Wno-error=foo warnings to be immune to -Werror as
they are supposed to be.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69265 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
0958cff64be2a6fa11889c64ae54944b85912bce 16-Apr-2009 Chris Lattner <sabre@nondot.org> change mappings to distinguish between "unset", "set by the user" and
"set to the default value".


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69264 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
691f1ae7164ba78c3dd7ac20c487399935b9544b 16-Apr-2009 Chris Lattner <sabre@nondot.org> change mappings to distinguish between "unset", "set by the user" and
"set to the default value".


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69264 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
2de848348b84343921047017e2ac8c294acbd3cf 15-Apr-2009 Chris Lattner <sabre@nondot.org> fix some out of bounds array access problems, which manifest particularly
spectacularly when built for x86-64.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69197 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
fe526d2be9faf52a40640ed610baba9bc6cb16d8 15-Apr-2009 Chris Lattner <sabre@nondot.org> fix some out of bounds array access problems, which manifest particularly
spectacularly when built for x86-64.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69197 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
0baad39be4f0379cc847e0f867c5f5addab32385 15-Apr-2009 Chris Lattner <sabre@nondot.org> move {'s


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69179 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
d2aa7c90e7646c509f3493fa8548635ccf4a2d0a 15-Apr-2009 Chris Lattner <sabre@nondot.org> move {'s


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69179 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
e5d60a3d4be1eaa0b6349236787e3ee92bbfc8ff 15-Apr-2009 Chris Lattner <sabre@nondot.org> Make diagnostic class explicit in the diag record instead of
implicit from its parenting. Now that diag mapping is
explicit, eliminate the fatal and extwarn classes.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69177 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
8a941e0c71d318430648e24eeca91a464a46eba9 15-Apr-2009 Chris Lattner <sabre@nondot.org> Make diagnostic class explicit in the diag record instead of
implicit from its parenting. Now that diag mapping is
explicit, eliminate the fatal and extwarn classes.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69177 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
13d17ac85da60e14f4dace39d6c438a5ea016757 15-Apr-2009 Chris Lattner <sabre@nondot.org> Tblgen now passes the default mapping explicitly, instead of having it
be tied to the diag class. This requires an LLVM tree update.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69175 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
4ac072aceb9c68f7a023050e2ab9ccacb4fe6e5b 15-Apr-2009 Chris Lattner <sabre@nondot.org> Tblgen now passes the default mapping explicitly, instead of having it
be tied to the diag class. This requires an LLVM tree update.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69175 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
015b4e1bb608f6c89e6c0daaadae57ff33375766 15-Apr-2009 Chris Lattner <sabre@nondot.org> Rejigger how -pedantic and -pedantic-errors work and their interaction
with other diagnostic mapping. In the new scheme, -Wfoo or -Wno-foo or
-Werror=foo all override the -pedantic options, and __extension__
robustly silences all extension diagnostics in their scope.

An added bonus of this change is that MAP_DEFAULT goes away, meaning that
per-diagnostic mapping information can now be stored in 2 bits, doubling
the density of the Diagnostic::DiagMapping array. This also
substantially simplifies Diagnostic::getDiagnosticLevel.

OTOH, this temporarily introduces some "macro intensive" code in
Diagnostic.cpp. This will be addressed in a later patch.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69154 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
27ceb9d77d929f02a8a811d189a96885629c7c0c 15-Apr-2009 Chris Lattner <sabre@nondot.org> Rejigger how -pedantic and -pedantic-errors work and their interaction
with other diagnostic mapping. In the new scheme, -Wfoo or -Wno-foo or
-Werror=foo all override the -pedantic options, and __extension__
robustly silences all extension diagnostics in their scope.

An added bonus of this change is that MAP_DEFAULT goes away, meaning that
per-diagnostic mapping information can now be stored in 2 bits, doubling
the density of the Diagnostic::DiagMapping array. This also
substantially simplifies Diagnostic::getDiagnosticLevel.

OTOH, this temporarily introduces some "macro intensive" code in
Diagnostic.cpp. This will be addressed in a later patch.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69154 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
1214b585792644466e8cd19e3274df3f9836a09f 14-Apr-2009 Mike Stump <mrs@apple.com> Fixup whitespacing.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69055 91177308-0d34-0410-b5e6-96231b3b80d8
onvertUTF.c
aa771a838a8f39633947ccc597e11d57e2839089 14-Apr-2009 Mike Stump <mrs@apple.com> Fixup whitespacing.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69055 91177308-0d34-0410-b5e6-96231b3b80d8
onvertUTF.c
635f97f496328be23baade4b8c0e2cb5f4215d34 13-Apr-2009 Douglas Gregor <doug.gregor@gmail.com> Include the SourceManager's line table in the PCH file. We can now
properly cope with #line directives in PCH files.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68963 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
bd94500d3aa60092fb0f1e90f53fb0d03fa502a8 13-Apr-2009 Douglas Gregor <dgregor@apple.com> Include the SourceManager's line table in the PCH file. We can now
properly cope with #line directives in PCH files.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68963 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
cdad0ba825bd59e5ee9ccd4e5894f15171440208 13-Apr-2009 Douglas Gregor <doug.gregor@gmail.com> Factor the internals of SourceManager (specially, LineTableInfo) into a separate Internals header. No functionality change

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68960 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
d4f77aa7c276be49aee5e59ef509cb91e26aa79f 13-Apr-2009 Douglas Gregor <dgregor@apple.com> Factor the internals of SourceManager (specially, LineTableInfo) into a separate Internals header. No functionality change

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68960 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
93f6453ea5d78a155b992fadb5961bdd4dcbbed6 10-Apr-2009 Daniel Dunbar <daniel@zuster.org> Support -miphoneos-version-min in clang-cc.
- Patch by Shantonu Sen (with a minor tweak to split out
getDarwin{OSX,IPhoneOS}Defines)!

- <rdar://problem/6776277> Need clang-cc/ccc-analyzer support for
-miphoneos-version-min


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68815 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
8d33cd77dc1086f70f1699ea012702d0df7eba1a 10-Apr-2009 Daniel Dunbar <daniel@zuster.org> Support -miphoneos-version-min in clang-cc.
- Patch by Shantonu Sen (with a minor tweak to split out
getDarwin{OSX,IPhoneOS}Defines)!

- <rdar://problem/6776277> Need clang-cc/ccc-analyzer support for
-miphoneos-version-min


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68815 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
0e004a10bfb9560c7b2507267362672d3e93f3fb 08-Apr-2009 Chris Lattner <sabre@nondot.org> Add initial support for -imacros. Right now it has the same semantics as
-include, but that will be fixed soon.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68625 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
b8e240ed8b8f58c7b7fe82776bd6147b437f5d53 08-Apr-2009 Chris Lattner <sabre@nondot.org> Add initial support for -imacros. Right now it has the same semantics as
-include, but that will be fixed soon.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68625 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
d4f7f625722ab57348b8bb698bb78da2f1a6b7ac 08-Apr-2009 Chris Lattner <sabre@nondot.org> remove fixme!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68589 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
837e897660a527cfe2b443ae7303f6cc8ba99a83 08-Apr-2009 Chris Lattner <sabre@nondot.org> remove fixme!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68589 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f90a29f55cc9f1f8ef84b542c585ee7936b472f9 08-Apr-2009 Mike Stump <mrs@apple.com> Add basic support for arm static analysis checking. Radar 6699395


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68582 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
437bb4b6ecf23bd016203dee80983402cdcb761e 08-Apr-2009 Mike Stump <mrs@apple.com> Add basic support for arm static analysis checking. Radar 6699395


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68582 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
8181e6240469cf261c18235b3265e2285ee41af1 07-Apr-2009 Chris Lattner <sabre@nondot.org> Fariborz points out that weak is now defined to the attribute even
in C mode.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68520 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
10d2427386124b69c150bef0163b525404bbb545 07-Apr-2009 Chris Lattner <sabre@nondot.org> Fariborz points out that weak is now defined to the attribute even
in C mode.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68520 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
33854aaf48b57c7eb2c8b8e66f31ddfe47b2b231 07-Apr-2009 Chris Lattner <sabre@nondot.org> The __weak and __strong defines are common to all darwin targets
and are even set in C mode. As such, move them to Targets.cpp.

__OBJC_GC__ is also darwin specific, but seems reasonable to always
define it when in objc-gc mode.

This fixes rdar://6761450


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68494 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
3a5cbd37c91d29bbd169ae869b234ed1fc954cb6 07-Apr-2009 Chris Lattner <sabre@nondot.org> The __weak and __strong defines are common to all darwin targets
and are even set in C mode. As such, move them to Targets.cpp.

__OBJC_GC__ is also darwin specific, but seems reasonable to always
define it when in objc-gc mode.

This fixes rdar://6761450


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68494 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
8fcffeb6ce16ac977e11f965077e8dfbb62dd4bd 04-Apr-2009 Anton Korobeynikov <asl@math.spbu.ru> Provide sema proper values of maximal number of arguments passed in registers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68413 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
264a76cdf382c507f4d43e64c89f1503f003ac95 04-Apr-2009 Anton Korobeynikov <asl@math.spbu.ru> Provide sema proper values of maximal number of arguments passed in registers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68413 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
6a91648fe9226db360759a23c89bb5aec3f3ceab 03-Apr-2009 Daniel Dunbar <daniel@zuster.org> Add target hook for setting symbol prefix and section of unicode
string literals.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68363 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
a9668e0b4c451a1021fe650c451b54dc98c2d18d 03-Apr-2009 Daniel Dunbar <daniel@zuster.org> Add target hook for setting symbol prefix and section of unicode
string literals.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68363 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
ae27fb4c9e76b400271b4fb7a8fc3669060c44c5 03-Apr-2009 Douglas Gregor <doug.gregor@gmail.com> Fix a little typo that was killing de-serialization

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68354 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
2b63fbc9bf79e98e824cd9a6d5104242756dc6b7 03-Apr-2009 Douglas Gregor <dgregor@apple.com> Fix a little typo that was killing de-serialization

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68354 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
df7b891cd0061de2ce84557c74c3fc3f73bd6566 03-Apr-2009 Douglas Gregor <doug.gregor@gmail.com> Resynchronize Decl/VarDecl serialization code with the structures

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68346 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
3050ed44aea059f1bb48d05b6dd64478bd8ed0aa 03-Apr-2009 Douglas Gregor <dgregor@apple.com> Resynchronize Decl/VarDecl serialization code with the structures

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68346 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
82e5db22dbf69459dc108176bbef86bd1287c151 01-Apr-2009 Steve Naroff <snaroff@apple.com> Add ConvertUTF module from http://www.unicode.org/Public/PROGRAMS/CVTUTF.

#ifdef'd out the 5 conversion routines that we don't currently need.

Still need a bit more work in GetAddrOfConstantCFString(). Added a FIXME to indicate this.

Expect to remove the FIXME today...


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68208 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
onvertUTF.c
e9b7d8ace8674585818990cff585daae7745bd88 01-Apr-2009 Steve Naroff <snaroff@apple.com> Add ConvertUTF module from http://www.unicode.org/Public/PROGRAMS/CVTUTF.

#ifdef'd out the 5 conversion routines that we don't currently need.

Still need a bit more work in GetAddrOfConstantCFString(). Added a FIXME to indicate this.

Expect to remove the FIXME today...


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68208 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
onvertUTF.c
c3a4893262053ed2efc04a6128358cc8f706a5a0 01-Apr-2009 Daniel Dunbar <daniel@zuster.org> Add Target hooks for IRgen of [cf]string literals.
- Notably, set section on cfstring literal string data (for now, this
is done everywhere because it matches what we were already doing
for the CFString data itself)

- <rdar://problem/6599098> [irgen] linker requires objc string data
to go into cstring


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68160 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
8e5c2b8072f4409c7c0004331d1db9652d5209c0 01-Apr-2009 Daniel Dunbar <daniel@zuster.org> Add Target hooks for IRgen of [cf]string literals.
- Notably, set section on cfstring literal string data (for now, this
is done everywhere because it matches what we were already doing
for the CFString data itself)

- <rdar://problem/6599098> [irgen] linker requires objc string data
to go into cstring


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68160 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
04ede30ad07d083cb0c7769cea52a9865bf8b41d 29-Mar-2009 Eli Friedman <eli.friedman@gmail.com> Fix the default for intptr_t on *BSD x86-32 and Windows. Slight cleanup
by moving the general case to the generic x86-32 target.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68015 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1afabd948520c2607309383655600b46083e083a 29-Mar-2009 Eli Friedman <eli.friedman@gmail.com> Fix the default for intptr_t on *BSD x86-32 and Windows. Slight cleanup
by moving the general case to the generic x86-32 target.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68015 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
88fd99486b25f23ab3a70e552051e43ad57b09af 23-Mar-2009 Daniel Dunbar <daniel@zuster.org> Ad FreeBSD ARM target info.
- Patch by Ed Schoeten!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67527 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1e0107a3d1e9477bb3fc0bf0dbe1b52cbdd23a77 23-Mar-2009 Daniel Dunbar <daniel@zuster.org> Ad FreeBSD ARM target info.
- Patch by Ed Schoeten!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67527 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
46970ed35b8989a3c1b787beab82125493ccbd1a 20-Mar-2009 Douglas Gregor <doug.gregor@gmail.com> Eliminate post-diagnostic hooks. Instead, implement a Sema-specific
variant of DiagnosticBuilder that emits the template instantiation
backtrace when needed.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67413 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
25a88bbf042317976f0d9cbfa87dfe89426e8393 20-Mar-2009 Douglas Gregor <dgregor@apple.com> Eliminate post-diagnostic hooks. Instead, implement a Sema-specific
variant of DiagnosticBuilder that emits the template instantiation
backtrace when needed.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67413 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
c345a80ada9bbdc1e72b94c78bd0505438b6e162 20-Mar-2009 Chris Lattner <sabre@nondot.org> refactor some code, fixing a problem discovered by the dragonfly bsd people, where
clang was defining "i386" even when in non-gnu mode.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67378 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
ca45cffe5e17f5c2cd2f4d9f631924c704f0f184 20-Mar-2009 Chris Lattner <sabre@nondot.org> refactor some code, fixing a problem discovered by the dragonfly bsd people, where
clang was defining "i386" even when in non-gnu mode.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67378 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
ab81f16dee732c88a226aa554a6721725ee7b12a 20-Mar-2009 Chris Lattner <sabre@nondot.org> pass langoptions around.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67376 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
318ca7106d59c9851125b9b8979e2dff05b390d0 20-Mar-2009 Chris Lattner <sabre@nondot.org> pass langoptions around.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67376 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
796824014e267eb99d8e80b01eff55f3d5be8b44 20-Mar-2009 Chris Lattner <sabre@nondot.org> pass LangOptions into TargetInfo::getTargetDefines, so that targets
can have language-specific defines.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67375 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
33328642a7a8a126918814ddcbcebf83c121ad54 20-Mar-2009 Chris Lattner <sabre@nondot.org> pass LangOptions into TargetInfo::getTargetDefines, so that targets
can have language-specific defines.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67375 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
23974ac63841eada280bdd4821091d1b127242a5 20-Mar-2009 Sebastian Redl <sebastian.redl@getdesigned.at> Bindir and Win32 builds work, so switch to .inc files. Leave the .def files in the tree for a day or so longer.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67346 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
4d7a089144f336b11e5e8ce437b3b27bce2b310d 20-Mar-2009 Sebastian Redl <sebastian.redl@getdesigned.at> Bindir and Win32 builds work, so switch to .inc files. Leave the .def files in the tree for a day or so longer.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67346 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
4019749cbf775a28f952a3f10ed4467a5152d682 19-Mar-2009 Douglas Gregor <doug.gregor@gmail.com> Allow notes to be printed following a fatal error, then suppress any
diagnostics following those notes.

Make exceeding the template instantiation depth a fatal error.

Thanks to Daniel for pointing out the problem!



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67320 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
525c4b0d1bd1a70bf269adecf91b192f3e6c1a89 19-Mar-2009 Douglas Gregor <dgregor@apple.com> Allow notes to be printed following a fatal error, then suppress any
diagnostics following those notes.

Make exceeding the template instantiation depth a fatal error.

Thanks to Daniel for pointing out the problem!



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67320 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
026a2ef889178bbf6707465b73909aa38aaf7e6b 17-Mar-2009 Douglas Gregor <doug.gregor@gmail.com> Build system changes to use TableGen to generate the various
diagnostics. This builds on the patch that Sebastian committed and
then revert. Major differences are:

- We don't remove or use the current ".def" files. Instead, for now,
we just make sure that we're building the ".inc" files.
- Fixed CMake makefiles to run TableGen and build the ".inc" files
when needed. Tested with both the Xcode and Makefile generators
provided by CMake, so it should be solid.
- Fixed normal makefiles to handle out-of-source builds that involve
the ".inc" files.

I'll send a separate patch to the list with Sebastian's changes that
eliminate the use of the .def files.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67058 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
akefile
a393e9eedcc28b25f521a4feceb3b56e3d0d360f 17-Mar-2009 Douglas Gregor <dgregor@apple.com> Build system changes to use TableGen to generate the various
diagnostics. This builds on the patch that Sebastian committed and
then revert. Major differences are:

- We don't remove or use the current ".def" files. Instead, for now,
we just make sure that we're building the ".inc" files.
- Fixed CMake makefiles to run TableGen and build the ".inc" files
when needed. Tested with both the Xcode and Makefile generators
provided by CMake, so it should be solid.
- Fixed normal makefiles to handle out-of-source builds that involve
the ".inc" files.

I'll send a separate patch to the list with Sebastian's changes that
eliminate the use of the .def files.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67058 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
akefile
eee67792c8f4abd48c28e7b3267022fda25bca8d 14-Mar-2009 Sebastian Redl <sebastian.redl@getdesigned.at> Revert the switch to the tablegen diags. It fails for seperate objdir builds and cmake builds, and I have no clue what to do about it. Revisit this after someone with a clue about the build systems has looked at it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67009 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
e89b6b272f9f3b15afa56a701a4d7a6b1001ed34 14-Mar-2009 Sebastian Redl <sebastian.redl@getdesigned.at> Revert the switch to the tablegen diags. It fails for seperate objdir builds and cmake builds, and I have no clue what to do about it. Revisit this after someone with a clue about the build systems has looked at it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67009 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
fa70786a0bc7a28c23c389fbe538038e1ea97ce2 14-Mar-2009 Sebastian Redl <sebastian.redl@getdesigned.at> Switch diagnostics from .def to tablegen files. Please validate the Windows build.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67007 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
3801d71fbeb6e74a22cdd6a858e10d887bc29c7a 14-Mar-2009 Sebastian Redl <sebastian.redl@getdesigned.at> Switch diagnostics from .def to tablegen files. Please validate the Windows build.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67007 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
f45afe6bcfe63fc672f2311cc62e80275a857e9d 12-Mar-2009 Daniel Dunbar <daniel@zuster.org> Add Diagnostic files for Frontend and move a couple errors over.
- Notably, clang now exits with an error if it can't find a
file. This flushed out a bug in the CGColorSpace.c test case. :)


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66789 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
50f4f469024928670f2d634c445686d00eeb89b7 12-Mar-2009 Daniel Dunbar <daniel@zuster.org> Add Diagnostic files for Frontend and move a couple errors over.
- Notably, clang now exits with an error if it can't find a
file. This flushed out a bug in the CGColorSpace.c test case. :)


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66789 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
93468495c02e53c3e6a9f92335496a6fd32bb9fd 12-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Use standard Diagnostic interface for diagnostics.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66786 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
4ad4b3ebbe5769143389dccfcfadb666a4ba5940 12-Mar-2009 Daniel Dunbar <daniel@zuster.org> Driver: Use standard Diagnostic interface for diagnostics.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66786 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
0119bbf6116f62afd808427e79f2d92d4d22fa41 11-Mar-2009 Chris Lattner <sabre@nondot.org> Clear all the linetable state in clear(), fixing problems
with "clang t.i s.i" where the .i files contain line markers.
rdar://6667812


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66619 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
1841aa19aa577437f3b0ff8ce1ff8deafa20d6c8 11-Mar-2009 Chris Lattner <sabre@nondot.org> Clear all the linetable state in clear(), fixing problems
with "clang t.i s.i" where the .i files contain line markers.
rdar://6667812


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66619 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
fee85d6b7303d9a7ac28836141ded2fcf9bd07a9 10-Mar-2009 Douglas Gregor <doug.gregor@gmail.com> Add a notion of "post-diagnostic hooks", which are callbacks attached
to a diagnostic that will be invoked after the diagnostic (if it is
not suppressed). The hooks are allowed to produce additional
diagnostics (typically notes) that provide more information. We should
be able to use this to help diagnostic clients link notes back to the
diagnostic they clarify. Comments welcome; I'll write up documentation
and convert other clients (e.g., overload resolution failures) if
there are no screams of protest.

As the first client of post-diagnostic hooks, we now produce a
template instantiation backtrace when a failure occurs during template
instantiation. There's still more work to do to make this output
pretty, if that's even possible.




git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66557 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
ee1828a6b5ae1bc4ea300e48f3840ac1ec5be295 10-Mar-2009 Douglas Gregor <dgregor@apple.com> Add a notion of "post-diagnostic hooks", which are callbacks attached
to a diagnostic that will be invoked after the diagnostic (if it is
not suppressed). The hooks are allowed to produce additional
diagnostics (typically notes) that provide more information. We should
be able to use this to help diagnostic clients link notes back to the
diagnostic they clarify. Comments welcome; I'll write up documentation
and convert other clients (e.g., overload resolution failures) if
there are no screams of protest.

As the first client of post-diagnostic hooks, we now produce a
template instantiation backtrace when a failure occurs during template
instantiation. There's still more work to do to make this output
pretty, if that's even possible.




git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66557 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
24c169debdbe1f6779664296f1b831eeb00bc051 10-Mar-2009 Daniel Dunbar <daniel@zuster.org> Remove some now-unneeded calls to llvm::errs().flush().


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66555 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
4a77edb3f0fabc8e214a3d5636c4d0aff031645c 10-Mar-2009 Daniel Dunbar <daniel@zuster.org> Remove some now-unneeded calls to llvm::errs().flush().


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66555 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
e1fa84b29f24110b09b76b9174eafe70f0035088 10-Mar-2009 Ted Kremenek <kremenek@apple.com> Add FullSourceLoc::getDecomposedLoc.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66522 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
321abd4583dc02a254489132c5ccbe125d18ce4f 10-Mar-2009 Ted Kremenek <kremenek@apple.com> Add FullSourceLoc::getDecomposedLoc.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66522 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
8be6f744bc18836256beffedd2440a67b6a229c2 07-Mar-2009 Ted Kremenek <kremenek@apple.com> Revert my last couple patches until I can get them to not make the tests fail.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66317 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
d42ffbd22fc7eb61321f6a88173ee424991f01c6 07-Mar-2009 Ted Kremenek <kremenek@apple.com> Revert my last couple patches until I can get them to not make the tests fail.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66317 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
a732e852da1662171989ebccaa025bc3170efa8e 07-Mar-2009 Ted Kremenek <kremenek@apple.com> Teach Diagnostic about Selector.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66314 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
b9eb3afc9eafbb1c6815c8b63633065f370be6a5 07-Mar-2009 Ted Kremenek <kremenek@apple.com> Teach Diagnostic about Selector.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66314 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
a05c34b7b0c4c529ac9349c28cd0996d384ba8c3 07-Mar-2009 Ted Kremenek <kremenek@apple.com> Selector: (changes made after discussing this more with Steve Naroff)
- Make Selector::getAsIdentifierInfo() private. Using IdentifierInfo* in
Selector is an implementation detail that clients shouldn't think about.
- Modify diagnostic emission in Sema::ProcessPropertyDecl to not use
Selector::getAsIdentifierInfo() (which could crash when IdentifierInfo* is
null) and instead use Selector::getAsString().
- Tidy up Selector::getAsString() implementation.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66313 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
150ec292a6e7995a711cedbe7a10a25d664a6c6b 07-Mar-2009 Ted Kremenek <kremenek@apple.com> Selector: (changes made after discussing this more with Steve Naroff)
- Make Selector::getAsIdentifierInfo() private. Using IdentifierInfo* in
Selector is an implementation detail that clients shouldn't think about.
- Modify diagnostic emission in Sema::ProcessPropertyDecl to not use
Selector::getAsIdentifierInfo() (which could crash when IdentifierInfo* is
null) and instead use Selector::getAsString().
- Tidy up Selector::getAsString() implementation.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66313 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
402c27ca915f1ec46de0032472481d72736a17ab 07-Mar-2009 Ted Kremenek <kremenek@apple.com> Handle null IdentifierInfo* in Selector::getAsString().


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66307 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
f5ed3961d21450c4fe98a00d7170da71b485328e 07-Mar-2009 Ted Kremenek <kremenek@apple.com> Handle null IdentifierInfo* in Selector::getAsString().


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66307 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
c24b889ca4ac3c0af96c30cbf5d4db8165ff2dfe 05-Mar-2009 Chris Lattner <sabre@nondot.org> Include information about compound statements when crashing in sema or the
parser. For example, we now print out:

0. t.c:5:10: in compound statement {}
1. t.c:3:12: in compound statement {}
2. clang t.c -fsyntax-only



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66108 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
ae50fa0a9e7217b043ed4ffe175af4b26dc90f34 05-Mar-2009 Chris Lattner <sabre@nondot.org> Include information about compound statements when crashing in sema or the
parser. For example, we now print out:

0. t.c:5:10: in compound statement {}
1. t.c:3:12: in compound statement {}
2. clang t.c -fsyntax-only



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66108 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
c96f3d932df38c85a3d2589f756fd0ed2643f3f8 04-Mar-2009 Chris Lattner <sabre@nondot.org> allocate MultiKeywordSelector's out of a bump pointer allocator instead of malloc.
This has two advantages 1) no more leaking them, 2) fewer calls to malloc.

This changes us from calling malloc 3685/1390/883/2974/1185 times respectively on
16/20/24/28/32 byte objects when parsing cocoa.h with pth and -disable-free to
calling it 2816/1020/702/2903/1168 times each respectively.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66017 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
5f7d2284c4b2f08d155732454002e68dc40c33ef 04-Mar-2009 Chris Lattner <sabre@nondot.org> allocate MultiKeywordSelector's out of a bump pointer allocator instead of malloc.
This has two advantages 1) no more leaking them, 2) fewer calls to malloc.

This changes us from calling malloc 3685/1390/883/2974/1185 times respectively on
16/20/24/28/32 byte objects when parsing cocoa.h with pth and -disable-free to
calling it 2816/1020/702/2903/1168 times each respectively.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66017 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
f6790a803435e05567812367280879268a962157 03-Mar-2009 Chris Lattner <sabre@nondot.org> implement support for propagating *features* down to the code generator
and defining target-specific macros based on them (like __SSE3__ and
friends). After extensive discussion with Daniel, this work will need
driver support, which will translate things like -msse3 into a -mattr
feature. Until this work is done, the code in clang.cpp is disabled and
the X86TargetInfo ctor still defaults to SSE2. With these two things
changed, this code will work. PR3634


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65966 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
6328cc316d7032517399da9230a197cd29f2664d 03-Mar-2009 Chris Lattner <sabre@nondot.org> implement support for propagating *features* down to the code generator
and defining target-specific macros based on them (like __SSE3__ and
friends). After extensive discussion with Daniel, this work will need
driver support, which will translate things like -msse3 into a -mattr
feature. Until this work is done, the code in clang.cpp is disabled and
the X86TargetInfo ctor still defaults to SSE2. With these two things
changed, this code will work. PR3634


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65966 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
715fe4c00d89cf2337e633577173f28fafca19ee 02-Mar-2009 Chris Lattner <sabre@nondot.org> Add plumbing to support programatically defining __SSE2__ and friends,
even though we still hard code sse2 for now. No support for 3dnow or sse4a,
but someone could add that if they desired.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65886 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
84f0ea849e79b08093933970c056d8b8d7be3c82 02-Mar-2009 Chris Lattner <sabre@nondot.org> Add plumbing to support programatically defining __SSE2__ and friends,
even though we still hard code sse2 for now. No support for 3dnow or sse4a,
but someone could add that if they desired.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65886 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
bef1d7225ab94e3f5a8205ec0544d70062e1577a 02-Mar-2009 Chris Lattner <sabre@nondot.org> minor cleanups to target-specific #defines, no functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65885 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
c0f5921215b476d19a84fe353b8e1763a09b3156 02-Mar-2009 Chris Lattner <sabre@nondot.org> minor cleanups to target-specific #defines, no functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65885 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
7d6220ca4a53b38673473fd461ff8e983d22225e 02-Mar-2009 Chris Lattner <sabre@nondot.org> improve compatibility with GCC 4.4, patch by Michel Salim (PR3697)


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65884 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
ourceLocation.cpp
argets.cpp
3daed52a57d03765223021f5f921bdc280c8f3cc 02-Mar-2009 Chris Lattner <sabre@nondot.org> improve compatibility with GCC 4.4, patch by Michel Salim (PR3697)


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65884 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
ourceLocation.cpp
argets.cpp
36834a75d9a3daaf87b6ef25a06ccf084eb43561 28-Feb-2009 Anders Carlsson <andersca@mac.com> TargetInfo::validateAsmConstraint now takes a reference to the full constraints string. This will make it possible to support multi-character constraints. No functionality change (for now).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65696 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
066d2ea7521896efc05cce7aa46fdd3a7ba96c28 28-Feb-2009 Anders Carlsson <andersca@mac.com> TargetInfo::validateAsmConstraint now takes a reference to the full constraints string. This will make it possible to support multi-character constraints. No functionality change (for now).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65696 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
61be3601335d62fc5bd59ea89d6efff7576bf58d 27-Feb-2009 Douglas Gregor <doug.gregor@gmail.com> Clean up and document code modification hints.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65641 91177308-0d34-0410-b5e6-96231b3b80d8
okenKinds.cpp
b2fb6de9070fea9abc56c8e8d5469066e964cefe 27-Feb-2009 Douglas Gregor <dgregor@apple.com> Clean up and document code modification hints.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65641 91177308-0d34-0410-b5e6-96231b3b80d8
okenKinds.cpp
3bb3000049dd841d51cfad730bd056d1467f92f0 26-Feb-2009 Douglas Gregor <doug.gregor@gmail.com> Introduce code modification hints into the diagnostics system. When we
know how to recover from an error, we can attach a hint to the
diagnostic that states how to modify the code, which can be one of:

- Insert some new code (a text string) at a particular source
location
- Remove the code within a given range
- Replace the code within a given range with some new code (a text
string)

Right now, we use these hints to annotate diagnostic information. For
example, if one uses the '>>' in a template argument in C++98, as in
this code:

template<int I> class B { };
B<1000 >> 2> *b1;

we'll warn that the behavior will change in C++0x. The fix is to
insert parenthese, so we use code insertion annotations to illustrate
where the parentheses go:

test.cpp:10:10: warning: use of right-shift operator ('>>') in template
argument will require parentheses in C++0x
B<1000 >> 2> *b1;
^
( )


Use of these annotations is partially implemented for HTML
diagnostics, but it's not (yet) producing valid HTML, which may be
related to PR2386, so it has been #if 0'd out.

In this future, we could consider hooking this mechanism up to the
rewriter to actually try to fix these problems during compilation (or,
after a compilation whose only errors have fixes). For now, however, I
suggest that we use these code modification hints whenever we can, so
that we get better diagnostics now and will have better coverage when
we find better ways to use this information.

This also fixes PR3410 by placing the complaint about missing tokens
just after the previous token (rather than at the location of the next
token).




git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65570 91177308-0d34-0410-b5e6-96231b3b80d8
okenKinds.cpp
4b2d3f7bcc4df31157df443af1b80bcaa9b58bba 26-Feb-2009 Douglas Gregor <dgregor@apple.com> Introduce code modification hints into the diagnostics system. When we
know how to recover from an error, we can attach a hint to the
diagnostic that states how to modify the code, which can be one of:

- Insert some new code (a text string) at a particular source
location
- Remove the code within a given range
- Replace the code within a given range with some new code (a text
string)

Right now, we use these hints to annotate diagnostic information. For
example, if one uses the '>>' in a template argument in C++98, as in
this code:

template<int I> class B { };
B<1000 >> 2> *b1;

we'll warn that the behavior will change in C++0x. The fix is to
insert parenthese, so we use code insertion annotations to illustrate
where the parentheses go:

test.cpp:10:10: warning: use of right-shift operator ('>>') in template
argument will require parentheses in C++0x
B<1000 >> 2> *b1;
^
( )


Use of these annotations is partially implemented for HTML
diagnostics, but it's not (yet) producing valid HTML, which may be
related to PR2386, so it has been #if 0'd out.

In this future, we could consider hooking this mechanism up to the
rewriter to actually try to fix these problems during compilation (or,
after a compilation whose only errors have fixes). For now, however, I
suggest that we use these code modification hints whenever we can, so
that we get better diagnostics now and will have better coverage when
we find better ways to use this information.

This also fixes PR3410 by placing the complaint about missing tokens
just after the previous token (rather than at the location of the next
token).




git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65570 91177308-0d34-0410-b5e6-96231b3b80d8
okenKinds.cpp
72efecb2d962a2293f027c521acb9b5ea1031d79 25-Feb-2009 Fariborz Jahanian <fjahanian@apple.com> Minor refactoring.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65414 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
84d013393cb6af5e422b04bccd762857b5b06b60 25-Feb-2009 Fariborz Jahanian <fjahanian@apple.com> Minor refactoring.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65414 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
27f5896fb2fb105d810ce99e037bc7ebb1cd785f 25-Feb-2009 Fariborz Jahanian <fjahanian@apple.com> patch for two things.
make sure objc2's nonfragile abi is enacted for Leopard too.
add -fobjc-gc-only flag to the image_info symbol.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65413 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
66a5c2c0da225d45334c8062f10e73b7dee50681 25-Feb-2009 Fariborz Jahanian <fjahanian@apple.com> patch for two things.
make sure objc2's nonfragile abi is enacted for Leopard too.
add -fobjc-gc-only flag to the image_info symbol.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65413 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
273dce44728339a573ae98785b2f4c18481c36b7 20-Feb-2009 Chris Lattner <sabre@nondot.org> add support for amd64-*, patch by Brooks Davis!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65124 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
54fefbe9931284c8b78e4cb1cd5f13038f480b9f 20-Feb-2009 Chris Lattner <sabre@nondot.org> add support for amd64-*, patch by Brooks Davis!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65124 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
0b53af20d4a56a5ec3bc5072aaa3a14f6d6fecd1 20-Feb-2009 Chris Lattner <sabre@nondot.org> replace a dirty hack with a clean solution. Too bad we can't
use Blocks for our callbacks ;-)



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65083 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
92dd386e3f05d176b45a638199d51f536bd9d1c4 20-Feb-2009 Chris Lattner <sabre@nondot.org> replace a dirty hack with a clean solution. Too bad we can't
use Blocks for our callbacks ;-)



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65083 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
2bd4a5a5a36b49a146e66088d099f7f6f2985ac4 20-Feb-2009 Chris Lattner <sabre@nondot.org> Fix a long standard problem with clang retaining "too much" sugar
information about types. We often print diagnostics where we say
"foo_t" is bad, but the user doesn't know how foo_t is declared
(because it is a typedef). Fix this by expanding sugar when present
in a diagnostic (and not one of a few special cases, like vectors).

Before:
t.m:5:2: error: invalid operands to binary expression ('typeof(P)' and 'typeof(F)')
MAX(P, F);
^~~~~~~~~
t.m:1:78: note: instantiated from:
#define MAX(A,B) ({ __typeof__(A) __a = (A); __typeof__(B) __b = (B); __a < __b ? __b : __a; })
^

After:
t.m:5:2: error: invalid operands to binary expression ('typeof(P)' (aka 'struct mystruct') and 'typeof(F)' (aka 'float'))
MAX(P, F);
^~~~~~~~~
t.m:1:78: note: instantiated from:
#define MAX(A,B) ({ __typeof__(A) __a = (A); __typeof__(B) __b = (B); __a < __b ? __b : __a; })
^




git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65081 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
d0344a4a6182ad704881cbbaa21cca14913d2296 20-Feb-2009 Chris Lattner <sabre@nondot.org> Fix a long standard problem with clang retaining "too much" sugar
information about types. We often print diagnostics where we say
"foo_t" is bad, but the user doesn't know how foo_t is declared
(because it is a typedef). Fix this by expanding sugar when present
in a diagnostic (and not one of a few special cases, like vectors).

Before:
t.m:5:2: error: invalid operands to binary expression ('typeof(P)' and 'typeof(F)')
MAX(P, F);
^~~~~~~~~
t.m:1:78: note: instantiated from:
#define MAX(A,B) ({ __typeof__(A) __a = (A); __typeof__(B) __b = (B); __a < __b ? __b : __a; })
^

After:
t.m:5:2: error: invalid operands to binary expression ('typeof(P)' (aka 'struct mystruct') and 'typeof(F)' (aka 'float'))
MAX(P, F);
^~~~~~~~~
t.m:1:78: note: instantiated from:
#define MAX(A,B) ({ __typeof__(A) __a = (A); __typeof__(B) __b = (B); __a < __b ? __b : __a; })
^




git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65081 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
f1790ca8a7ece12dcdc11cd91f66bb601c0813f4 17-Feb-2009 Chris Lattner <sabre@nondot.org> add an accessor.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64760 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
bff5c512af8ca7ac92e974e04c06ff4f820e4ee1 17-Feb-2009 Chris Lattner <sabre@nondot.org> add an accessor.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64760 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
bf9a0e34c7c718081ffeafb79cd510341b2c2927 17-Feb-2009 Chris Lattner <sabre@nondot.org> add an accessor.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64758 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
387616edf98739f4a0dd234c907e2b913e6a535d 17-Feb-2009 Chris Lattner <sabre@nondot.org> add an accessor.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64758 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
724231a849b420feebd99b55e333c661e916858f 17-Feb-2009 Chris Lattner <sabre@nondot.org> fix a minor bug with my previous patch


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64747 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
336f26be05c30c0c65b8b518d68f04c29b43b3d2 17-Feb-2009 Chris Lattner <sabre@nondot.org> fix a minor bug with my previous patch


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64747 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
44b39837bbe5f6543afbe42245eff6957f4fe7c3 17-Feb-2009 Chris Lattner <sabre@nondot.org> fix notes so that they are always filtered with the same logic
as the last non-note diagnostic that preceeded them. This ensures
that diagnostics in main files which have notes with locations in
system headers get all the bits and pieces emitted or not in a
unit. This fixes PR3215.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64746 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
f5d2328fc849288c3a62e43d065685f516d57091 17-Feb-2009 Chris Lattner <sabre@nondot.org> fix notes so that they are always filtered with the same logic
as the last non-note diagnostic that preceeded them. This ensures
that diagnostics in main files which have notes with locations in
system headers get all the bits and pieces emitted or not in a
unit. This fixes PR3215.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64746 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
2e8a7aa7c15274813f876f4b2ca6ce38382c56c4 16-Feb-2009 Douglas Gregor <doug.gregor@gmail.com> Supply the header corresponding to a library builtin as a separate argument to the LIBBUILTIN macro

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64676 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
b1152d842c6599e41581302a85a0f53928253add 16-Feb-2009 Douglas Gregor <dgregor@apple.com> Supply the header corresponding to a library builtin as a separate argument to the LIBBUILTIN macro

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64676 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
46558bfca05fd9ff0e4aaddb23f51ca6e199524a 15-Feb-2009 Chris Lattner <sabre@nondot.org> add a new SourceManager::getInstantiationRange helper method.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64606 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
6678133b8ce642f93e5141f056fa643112041ad0 15-Feb-2009 Chris Lattner <sabre@nondot.org> add a new SourceManager::getInstantiationRange helper method.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64606 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
bc7a3cb00cca3dd84c1009ea74df12545747e99c 15-Feb-2009 Chris Lattner <sabre@nondot.org> track "just a little more" location information for macro instantiations.
Now instead of just tracking the expansion history, also track the full
range of the macro that got replaced. For object-like macros, this doesn't
change anything. For _Pragma and function-like macros, this means we track
the locations of the ')'.

This is required for PR3579 because apparently GCC uses the line of the ')'
of a function-like macro as the location to expand __LINE__ to.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64601 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
e7fb48466afcbf2c4ccdfa658824282fdc3c512c 15-Feb-2009 Chris Lattner <sabre@nondot.org> track "just a little more" location information for macro instantiations.
Now instead of just tracking the expansion history, also track the full
range of the macro that got replaced. For object-like macros, this doesn't
change anything. For _Pragma and function-like macros, this means we track
the locations of the ')'.

This is required for PR3579 because apparently GCC uses the line of the ')'
of a function-like macro as the location to expand __LINE__ to.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64601 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
23d232614940858972080d808959f0645318f74e 14-Feb-2009 Douglas Gregor <doug.gregor@gmail.com> Add -ffreestanding to suppress the implicit declaration of library builtins like printf and malloc. Fixes PR3586

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64566 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
3573c0c0b44a1ac8f76a00af1bc75e94ca03d704 14-Feb-2009 Douglas Gregor <dgregor@apple.com> Add -ffreestanding to suppress the implicit declaration of library builtins like printf and malloc. Fixes PR3586

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64566 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
fb8208525a27101a3ec5b0b0aa002fc64599b22a 14-Feb-2009 Anton Korobeynikov <asl@math.spbu.ru> Define __ELF__ on FreeBSD. Patch by Roman Divacky!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64557 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
2793bda429909d0c5c73334342ac69672754d801 14-Feb-2009 Anton Korobeynikov <asl@math.spbu.ru> Define __ELF__ on FreeBSD. Patch by Roman Divacky!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64557 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
c47ed4ab909515b4ba1d3630b8327e8d98743b4a 14-Feb-2009 Cédric Venet <cedric.venet@laposte.net> Fix the build on win32.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64556 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
ea684e699ea84e61711e279f5fa7a1b9f3d46bc2 14-Feb-2009 Cedric Venet <cedric.venet@laposte.net> Fix the build on win32.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64556 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
99de95343eb09885ab9aa898dc9dba117b40179d 14-Feb-2009 Argiris Kirtzidis <akyrtzi@gmail.com> Define __ELF__ for linux systems.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64553 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
487cdee2f5bf641af4532fe4af79545997d8f5e3 14-Feb-2009 Argyrios Kyrtzidis <akyrtzi@gmail.com> Define __ELF__ for linux systems.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64553 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
d9ef724225b3f0edf54a76aae0eda4f5447d5eeb 13-Feb-2009 Chris Lattner <sabre@nondot.org> Give TargetInfo a new IntPtrType to hold the intptr_t type for
a target.

Make Preprocessor.cpp define a new __INTPTR_TYPE__ macro based on this.

On linux/32, set intptr_t to int, instead of long. This fixes PR3563.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64495 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
6ad474f82f0cf32e13128d89fa5ad3a37ae73530 13-Feb-2009 Chris Lattner <sabre@nondot.org> Give TargetInfo a new IntPtrType to hold the intptr_t type for
a target.

Make Preprocessor.cpp define a new __INTPTR_TYPE__ macro based on this.

On linux/32, set intptr_t to int, instead of long. This fixes PR3563.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64495 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
d09b9f773b86b3057615d1cc32cbf48c4ed638d3 12-Feb-2009 Fariborz Jahanian <fjahanian@apple.com> Make nonfragile-abi the default for darwin's 64bit
abi for objective-c programs.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64386 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
a30b17b90033f40bb909d630466c2a04499b7bf0 12-Feb-2009 Fariborz Jahanian <fjahanian@apple.com> Make nonfragile-abi the default for darwin's 64bit
abi for objective-c programs.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64386 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
358123c2e3098540c8c9b124a70a82785ffaf0e7 12-Feb-2009 Ted Kremenek <kremenek@apple.com> FileManager:
- set the 'StatSysCallCache' object using a setter method instead of
FileManager's constructor. This allows the cache to be installed after the
FileManager object is created.
- Add 'file mode' to FileEntry (useful for stat caching)


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64351 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
96438f319bb07d9a40564b5e01333f82c0c8a61e 12-Feb-2009 Ted Kremenek <kremenek@apple.com> FileManager:
- set the 'StatSysCallCache' object using a setter method instead of
FileManager's constructor. This allows the cache to be installed after the
FileManager object is created.
- Add 'file mode' to FileEntry (useful for stat caching)


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64351 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
fb1beec181da8649efbe2273509316e6f7d4cc97 12-Feb-2009 Chris Lattner <sabre@nondot.org> search and replaceo?


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64348 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
3102c83f6eac0cbbd698471173672c3e47a6914c 12-Feb-2009 Chris Lattner <sabre@nondot.org> search and replaceo?


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64348 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
5830b773c03657c0a53f68dee9ea8985b884aa4d 12-Feb-2009 Ted Kremenek <kremenek@apple.com> Add lightweight shim "clang::StatSysCallCache" that caches 'stat' system calls
for use by FileManager. FileManager now takes a StatSysCallCache* in its
constructor (which defaults to NULL). This will be used for evaluating whether
or not caching 'stat' system calls in PTH is a performance win. This shim adds
no observable performance impact in the case where the 'StatSysCallCache*' is
null.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64345 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
fc7052d4a241ee6fc70afea7c1c9560147f0a49c 12-Feb-2009 Ted Kremenek <kremenek@apple.com> Add lightweight shim "clang::StatSysCallCache" that caches 'stat' system calls
for use by FileManager. FileManager now takes a StatSysCallCache* in its
constructor (which defaults to NULL). This will be used for evaluating whether
or not caching 'stat' system calls in PTH is a performance win. This shim adds
no observable performance impact in the case where the 'StatSysCallCache*' is
null.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64345 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
534234c87a201b20f496a37855b30510a5f5595d 06-Feb-2009 Chris Lattner <sabre@nondot.org> simplify and refactor a bunch of type definition code in Preprocessor
predefines buffer initialization.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63919 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
2b5abf515f9696912452f431c7738691cf97f4f1 06-Feb-2009 Chris Lattner <sabre@nondot.org> simplify and refactor a bunch of type definition code in Preprocessor
predefines buffer initialization.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63919 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
aab419ad381794352f65a94fe054b0cf40438617 06-Feb-2009 Chris Lattner <sabre@nondot.org> don't emit any diagnostics after a fatal one.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63914 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
15221422eda7bac679e38b07512feda49715ef66 06-Feb-2009 Chris Lattner <sabre@nondot.org> don't emit any diagnostics after a fatal one.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63914 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
6d6f11ffb540320e1d04b1ef745aaee01404a8c5 05-Feb-2009 Chris Lattner <sabre@nondot.org> add support to the diagnostics machinery for mapping warnings and
errors to 'fatal' error severity.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63894 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
da0cbc1ad4a553c4de111c1181ec7b42c5ddefce 05-Feb-2009 Chris Lattner <sabre@nondot.org> add support to the diagnostics machinery for mapping warnings and
errors to 'fatal' error severity.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63894 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
bfbfbaf0389b851f87c217880476c2a9d1474b80 05-Feb-2009 Chris Lattner <sabre@nondot.org> make clang agree with gcc 4.2's x86-64 predefines and settings.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63849 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
06ebe862f03d584a20e581d040fe06eec3afd5b3 05-Feb-2009 Chris Lattner <sabre@nondot.org> make clang agree with gcc 4.2's x86-64 predefines and settings.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63849 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
8405e094790920196aa4af714ca5d17259b0d20d 05-Feb-2009 Chris Lattner <sabre@nondot.org> fix some differences between apple gcc and clang on darwin/x86-32.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63846 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
d427ad4cceab4481be0ac5cc2a190148ccc181e2 05-Feb-2009 Chris Lattner <sabre@nondot.org> fix some differences between apple gcc and clang on darwin/x86-32.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63846 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
09be81b04e4e5f8c4c57f952fb6d82dcdbb56b85 04-Feb-2009 Douglas Gregor <doug.gregor@gmail.com> Some name-lookup-related fixes, from Piotr Rak!

- Changes Lookup*Name functions to return NamedDecls, instead of
Decls. Unfortunately my recent statement that it will simplify lot of
code, was not quite right, but it simplifies some...
- Makes MergeLookupResult SmallPtrSet instead of vector, following
Douglas suggestions.
- Adds %qN format for printing qualified names to Diagnostic.
- Avoids searching for using-directives in Scopes, which are not
DeclScope, during unqualified name lookup.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63739 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
47b9a1ca55e61e37f5a368740e29de190345acc6 04-Feb-2009 Douglas Gregor <dgregor@apple.com> Some name-lookup-related fixes, from Piotr Rak!

- Changes Lookup*Name functions to return NamedDecls, instead of
Decls. Unfortunately my recent statement that it will simplify lot of
code, was not quite right, but it simplifies some...
- Makes MergeLookupResult SmallPtrSet instead of vector, following
Douglas suggestions.
- Adds %qN format for printing qualified names to Diagnostic.
- Avoids searching for using-directives in Scopes, which are not
DeclScope, during unqualified name lookup.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63739 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
778ae2186a65d7dfd0defd8e2740dd03e32b6b3e 04-Feb-2009 Chris Lattner <sabre@nondot.org> Implement handling of file entry/exit notifications from GNU
line markers, including maintenance of the virtual include stack.

For something like this:

# 42 "bar.c" 1
# 142 "bar2.c" 1

#warning zappa
# 92 "bar.c" 2
#warning gonzo
# 102 "foo.c" 2
#warning bonkta


we now produce these three warnings:

#1:
In file included from foo.c:3:
In file included from bar.c:42:
bar2.c:143:2: warning: #warning zappa
#warning zappa
^

#2:
In file included from foo.c:3:
bar.c:92:2: warning: #warning gonzo
#warning gonzo
^

#3:
foo.c:102:2: warning: #warning bonkta
#warning bonkta
^




git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63722 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
137b6a6149c53dbbcb8fba98e524d9ad0f3c8736 04-Feb-2009 Chris Lattner <sabre@nondot.org> Implement handling of file entry/exit notifications from GNU
line markers, including maintenance of the virtual include stack.

For something like this:

# 42 "bar.c" 1
# 142 "bar2.c" 1

#warning zappa
# 92 "bar.c" 2
#warning gonzo
# 102 "foo.c" 2
#warning bonkta


we now produce these three warnings:

#1:
In file included from foo.c:3:
In file included from bar.c:42:
bar2.c:143:2: warning: #warning zappa
#warning zappa
^

#2:
In file included from foo.c:3:
bar.c:92:2: warning: #warning gonzo
#warning gonzo
^

#3:
foo.c:102:2: warning: #warning bonkta
#warning bonkta
^




git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63722 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
d0ff602b3059f07f9fea574482b81952884eec44 04-Feb-2009 Chris Lattner <sabre@nondot.org> make getFileCharacteristic linetable aware. line markers that
play around with the 'is system header' bit now function correctly.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63720 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
6b3066780bda02e3117d71a18ca2f430ed1454af 04-Feb-2009 Chris Lattner <sabre@nondot.org> make getFileCharacteristic linetable aware. line markers that
play around with the 'is system header' bit now function correctly.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63720 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
7bf7851dcecf9384ac67b082617ad2c49042ee4a 04-Feb-2009 Chris Lattner <sabre@nondot.org> propagate linemarker flags down into the the line table, currently
ignoring include stack push/pop info though.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63719 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
9d79ebac47ffde6a1cb312f4c09b66b1b9a397fb 04-Feb-2009 Chris Lattner <sabre@nondot.org> propagate linemarker flags down into the the line table, currently
ignoring include stack push/pop info though.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63719 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
1a2fbe45f1f98b31bacdb607554e6c5048c25a0d 04-Feb-2009 Chris Lattner <sabre@nondot.org> replace gimpy linear search with svelte binary search ;-)


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63717 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
6c1fbe05efa93ebabae7150c915624efd8f3f715 04-Feb-2009 Chris Lattner <sabre@nondot.org> replace gimpy linear search with svelte binary search ;-)


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63717 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
f13775452ad9ae880aacf402c4c09a9d0a3ab939 04-Feb-2009 Chris Lattner <sabre@nondot.org> make my atrocious linear search at least search in the order that is
more likely to hit.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63714 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
1c4a49813bcf9e24711e5963ea6b2c27e5113a6e 04-Feb-2009 Chris Lattner <sabre@nondot.org> make my atrocious linear search at least search in the order that is
more likely to hit.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63714 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
aabd322448990573c76fdeded8df9b9978f96133 04-Feb-2009 Chris Lattner <sabre@nondot.org> add comment



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63712 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
0e0e5da00e92a9ee97b2469009355926ee8d94bf 04-Feb-2009 Chris Lattner <sabre@nondot.org> add comment



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63712 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
74ae2d96e178dfde1cdd93769a9032c07ce6994b 04-Feb-2009 Chris Lattner <sabre@nondot.org> add the difference in the line marker phys line number and the
query point to the returned presumed location. We now produce:

foo.h:92:2: warning: #warning blarg!
#warning blarg!
^
foo.h:93:2: warning: #warning blarg!
#warning blarg!
^
foo.h:94:2: warning: #warning blarg!
#warning blarg!
^

for:

#line 92 "foo.h"
#warning blarg!
#warning blarg!
#warning blarg!

blarg indeed!



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63710 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
fc391330724ad2d3f0f486dc7a0ce96e9e73c33b 04-Feb-2009 Chris Lattner <sabre@nondot.org> add the difference in the line marker phys line number and the
query point to the returned presumed location. We now produce:

foo.h:92:2: warning: #warning blarg!
#warning blarg!
^
foo.h:93:2: warning: #warning blarg!
#warning blarg!
^
foo.h:94:2: warning: #warning blarg!
#warning blarg!
^

for:

#line 92 "foo.h"
#warning blarg!
#warning blarg!
#warning blarg!

blarg indeed!



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63710 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
6f9fa5a9f18dcd10d7a5787b2cdd9809941f107c 04-Feb-2009 Chris Lattner <sabre@nondot.org> add really really trivial #line support, where #line now makes every
location below it report as coming from the #line location. For example,
with:

#line 92 "foo.h"
#warning blarg!
#warning blarg!

we now emit:

foo.h:92:2: warning: #warning blarg!
#warning blarg!
^
foo.h:92:2: warning: #warning blarg!
#warning blarg!
^



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63709 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
3cd949c27c63f544a081b9a750740064ddef181b 04-Feb-2009 Chris Lattner <sabre@nondot.org> add really really trivial #line support, where #line now makes every
location below it report as coming from the #line location. For example,
with:

#line 92 "foo.h"
#warning blarg!
#warning blarg!

we now emit:

foo.h:92:2: warning: #warning blarg!
#warning blarg!
^
foo.h:92:2: warning: #warning blarg!
#warning blarg!
^



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63709 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
2d89c564719b2f812cafbe0d4a39d914001ff21e 04-Feb-2009 Chris Lattner <sabre@nondot.org> lower the interface to getLineNumber like we did for
getColumnNumber. This fixes a FIXME in
SourceManager::getPresumedLoc because we now just decompose
the sloc once.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63701 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
ourceManager.cpp
30fc933e5fbbb5f0ea60c47976d435254e378536 04-Feb-2009 Chris Lattner <sabre@nondot.org> lower the interface to getLineNumber like we did for
getColumnNumber. This fixes a FIXME in
SourceManager::getPresumedLoc because we now just decompose
the sloc once.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63701 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
ourceManager.cpp
e79fc8576f1d0937a6343ed438be9ed0cb0a88d6 04-Feb-2009 Chris Lattner <sabre@nondot.org> make SM::getColumnNumber take a predecomposed FileID/offset, which
makes it clear to clients that they have to pick an instantiation
or spelling location before calling it and allows optimization based
on that.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63698 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
ourceManager.cpp
7da5aea7669e6db3e593162b8a123aef06a04d07 04-Feb-2009 Chris Lattner <sabre@nondot.org> make SM::getColumnNumber take a predecomposed FileID/offset, which
makes it clear to clients that they have to pick an instantiation
or spelling location before calling it and allows optimization based
on that.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63698 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
ourceManager.cpp
fa45efd7389808435b571222fcfbbe82352f8dbe 04-Feb-2009 Chris Lattner <sabre@nondot.org> build per-fid linetable entries.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63694 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
23b5dc65451b1f91c0ecf337216c8ff473308cc2 04-Feb-2009 Chris Lattner <sabre@nondot.org> build per-fid linetable entries.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63694 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
6256b2bb3fd39020fee719410b295962c8397e4e 03-Feb-2009 Chris Lattner <sabre@nondot.org> more plumbing for #line propagation. Use happy bit #3
out of FileInfo :)


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63672 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
ac50e3427cb9eb3dc9f13f29a78f00ef3122433d 03-Feb-2009 Chris Lattner <sabre@nondot.org> more plumbing for #line propagation. Use happy bit #3
out of FileInfo :)


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63672 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
b06739c6ba693c7f71adf420e4152a6e2183e48d 03-Feb-2009 Chris Lattner <sabre@nondot.org> stub out basic #line handling calls.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63667 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
4c4ea17d7f991516c37a871dfa4bbe5723fa85f0 03-Feb-2009 Chris Lattner <sabre@nondot.org> stub out basic #line handling calls.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63667 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
917d7c62453ae45d1a7913116a08fbdc581a39bd 03-Feb-2009 Chris Lattner <sabre@nondot.org> reclaim my precious bit in FileInfo by ensuring that ContentCache objects
are 8-byte aligned.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63630 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
00282d6e1194655a2e89f940bd6fa8484b52e666 03-Feb-2009 Chris Lattner <sabre@nondot.org> reclaim my precious bit in FileInfo by ensuring that ContentCache objects
are 8-byte aligned.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63630 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
8dedb840b73e0c969d2cb2e2095be9795850ef39 03-Feb-2009 Chris Lattner <sabre@nondot.org> switch SourceManager from using an std::map and std::list of
ContentCache objects to using a densemap and list, and allocating
the ContentCache objects from a bump pointer. This does not speed
up or slow down things substantially, but gives us control over
their alignment.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63628 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
0d0bf8cf58b35302312cc155287fde3e81eb25a7 03-Feb-2009 Chris Lattner <sabre@nondot.org> switch SourceManager from using an std::map and std::list of
ContentCache objects to using a densemap and list, and allocating
the ContentCache objects from a bump pointer. This does not speed
up or slow down things substantially, but gives us control over
their alignment.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63628 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
8d9b1d84416ce012517da473bd37ec995f897266 29-Jan-2009 Chris Lattner <sabre@nondot.org> next round of diagnostics cleanups, moving some
diags around, eliminating #defines, etc. Patch by
Anders Johnsen!



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63318 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
19e8e2cffc19606d0f44e7c2897cd126ffd3f9b0 29-Jan-2009 Chris Lattner <sabre@nondot.org> next round of diagnostics cleanups, moving some
diags around, eliminating #defines, etc. Patch by
Anders Johnsen!



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63318 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
86a2484a87df299b1eeb17d379337eb073394f5d 29-Jan-2009 Chris Lattner <sabre@nondot.org> Fix -Wimplicit-function-declaration, which required some refactoring and
changes in various diagnostics code.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63282 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
88eccaf06f9d88191723e71bdf5ca68409393be6 29-Jan-2009 Chris Lattner <sabre@nondot.org> Fix -Wimplicit-function-declaration, which required some refactoring and
changes in various diagnostics code.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63282 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
9f69c91bc412a14c251525702871eeed90a355da 28-Jan-2009 Ted Kremenek <kremenek@apple.com> Add method FullSourceLoc::getBufferData().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63229 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
3632a35e811096da86d957c3e6ba0e73d75782f5 28-Jan-2009 Ted Kremenek <kremenek@apple.com> Add method FullSourceLoc::getBufferData().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63229 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
4dfc45a9af2f73303069f0a55947b57f3bd0794b 28-Jan-2009 Chris Lattner <sabre@nondot.org> long long and double have 64-bit alignment on x86-64.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63191 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
778601f8d38a924bba51d0239afd22b6ddde8ff7 28-Jan-2009 Chris Lattner <sabre@nondot.org> long long and double have 64-bit alignment on x86-64.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63191 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
91d4f7a5da30371a2c15395e48b60e455008b2e0 28-Jan-2009 Ted Kremenek <kremenek@apple.com> On Windows use a BumpPtrAllocator for the UniqueFileContainer's StringMap.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63162 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
75368893339d89f6523c312b0a0eb23d438b6dff 28-Jan-2009 Ted Kremenek <kremenek@apple.com> On Windows use a BumpPtrAllocator for the UniqueFileContainer's StringMap.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63162 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
abe189e738c71097d14b8657ffeff3cebce6aa29 28-Jan-2009 Ted Kremenek <kremenek@apple.com> FileManager: Use a BumpPtrAllocator for the StringMaps DirEntries and FileEntries.

Performance impact (clang -fsyntax-only INPUTS/Cocoa_h.m):
non-PTH: 0.4% improvement
PTH: 0.8% improvement



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63159 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
f3eb9219cf4b4e80c377d37aed72d5d6d840b7bc 28-Jan-2009 Ted Kremenek <kremenek@apple.com> FileManager: Use a BumpPtrAllocator for the StringMaps DirEntries and FileEntries.

Performance impact (clang -fsyntax-only INPUTS/Cocoa_h.m):
non-PTH: 0.4% improvement
PTH: 0.8% improvement



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63159 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
abd7e40d930d5e96458ea60df8db3aa4fd68aaf7 28-Jan-2009 Ted Kremenek <kremenek@apple.com> Add a some comments to designate Windows-specific/Unix-specific code. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63157 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
cb8d58b82859d2c56b679b901de38f416e2b6f48 28-Jan-2009 Ted Kremenek <kremenek@apple.com> Add a some comments to designate Windows-specific/Unix-specific code. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63157 91177308-0d34-0410-b5e6-96231b3b80d8
ileManager.cpp
dd3a4fe10568b3eb4f0f24b9a51b4d70b87a0d5f 27-Jan-2009 Anders Carlsson <andersca@mac.com> If an input constraint refers to an output constraint, it should have the same constraint info as the output constraint. Fixes PR3417

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63127 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
03eb543cf7ebee463b33b5802b83ac92c21770cf 27-Jan-2009 Anders Carlsson <andersca@mac.com> If an input constraint refers to an output constraint, it should have the same constraint info as the output constraint. Fixes PR3417

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63127 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
52a425b852e4641d46073a697a48a457c8f655e2 27-Jan-2009 Chris Lattner <sabre@nondot.org> Split the single monolithic DiagnosticKinds.def file into one
.def file for each library. This means that adding a diagnostic
to sema doesn't require all the other libraries to be rebuilt.

Patch by Anders Johnsen!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63111 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
20c6b3b85e186cd52d5d99489132d71d498159eb 27-Jan-2009 Chris Lattner <sabre@nondot.org> Split the single monolithic DiagnosticKinds.def file into one
.def file for each library. This means that adding a diagnostic
to sema doesn't require all the other libraries to be rebuilt.

Patch by Anders Johnsen!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63111 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
836774b81b2a48a2cde1e08abb1f5f5e0b21ae97 27-Jan-2009 Chris Lattner <sabre@nondot.org> Introduce a new PresumedLoc class to represent the concept of a location
as reported to the user and as manipulated by #line. This is what __FILE__,
__INCLUDE_LEVEL__, diagnostics and other things should follow (but not
dependency generation!).

This patch also includes several cleanups along the way:

- SourceLocation now has a dump method, and several other places
that did similar things now use it.
- I cleaned up some code in AnalysisConsumer, but it should probably be
simplified further now that NamedDecl is better.
- TextDiagnosticPrinter is now simplified and cleaned up a bit.

This patch is a prerequisite for #line, but does not actually provide
any #line functionality.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63098 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
ourceManager.cpp
b9c3f966b103f7cfe8e5e60007c4c8b38f7298eb 27-Jan-2009 Chris Lattner <sabre@nondot.org> Introduce a new PresumedLoc class to represent the concept of a location
as reported to the user and as manipulated by #line. This is what __FILE__,
__INCLUDE_LEVEL__, diagnostics and other things should follow (but not
dependency generation!).

This patch also includes several cleanups along the way:

- SourceLocation now has a dump method, and several other places
that did similar things now use it.
- I cleaned up some code in AnalysisConsumer, but it should probably be
simplified further now that NamedDecl is better.
- TextDiagnosticPrinter is now simplified and cleaned up a bit.

This patch is a prerequisite for #line, but does not actually provide
any #line functionality.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63098 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
ourceManager.cpp
66284fdcc3076f74b2ca0fe539f293204fc12727 27-Jan-2009 Chris Lattner <sabre@nondot.org> make -print-stats print stats about the amount of the SLoc
address space we used up. Some interesting data:

For c99-intconst-1.c:
6912762 SLocEntry's allocated, 25592386B of Sloc address space used.

For cocoa.h:
26469 SLocEntry's allocated, 10278752B of Sloc address space used.

For carbon.h:
27364 SLocEntry's allocated, 12398141B of Sloc address space used.

Clearly 2G of sloc address space should be enough for anyone?!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63093 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
08c375cd52b8f6b6a6915a2007205bc8179f41e9 27-Jan-2009 Chris Lattner <sabre@nondot.org> make -print-stats print stats about the amount of the SLoc
address space we used up. Some interesting data:

For c99-intconst-1.c:
6912762 SLocEntry's allocated, 25592386B of Sloc address space used.

For cocoa.h:
26469 SLocEntry's allocated, 10278752B of Sloc address space used.

For carbon.h:
27364 SLocEntry's allocated, 12398141B of Sloc address space used.

Clearly 2G of sloc address space should be enough for anyone?!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63093 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
ff7c53d543a9b3778c70467ef82396d311ffd3f5 27-Jan-2009 Chris Lattner <sabre@nondot.org> add SparcV8 asm register info support. Patch by Ben Lickly!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63085 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
e957f537451794225a541ed3fd75bc3c7bb21a6f 27-Jan-2009 Chris Lattner <sabre@nondot.org> add SparcV8 asm register info support. Patch by Ben Lickly!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63085 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
cf36e2eb15b72a2e957933a77cf0b16411535dac 26-Jan-2009 Chris Lattner <sabre@nondot.org> now that everything properly handles multiply instantiated
source locations, allow creation of them. We can now say that
a token was instantiated here, then here, then here.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63034 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
3c125576d971dfd4d81be93813a8896f302d992b 26-Jan-2009 Chris Lattner <sabre@nondot.org> now that everything properly handles multiply instantiated
source locations, allow creation of them. We can now say that
a token was instantiated here, then here, then here.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63034 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
8d92c1a4b0b12b12accec6b736b49140e4722875 26-Jan-2009 Chris Lattner <sabre@nondot.org> make getInstantiationLoc and getSpellingLoc handle multiply instantiated
locations, and move the slow case out of line. No perf change on cocoa.h


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63033 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
addb797ca2b5afc1a1e82fd8d5d6eb2a592e75a9 26-Jan-2009 Chris Lattner <sabre@nondot.org> make getInstantiationLoc and getSpellingLoc handle multiply instantiated
locations, and move the slow case out of line. No perf change on cocoa.h


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63033 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
18ad558fa66c113eb6d24fc528bb93b75f3ed1a2 26-Jan-2009 Chris Lattner <sabre@nondot.org> fix a negated conditional in getDecomposedInstantiationLocSlowCase,
which I think is rdar://6527005, and make getDecomposedSpellingLocSlowCase
handle nested spelling locations.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63030 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
bcd1a1b5af0b2d57b20fc393a8c3b0badc58c450 26-Jan-2009 Chris Lattner <sabre@nondot.org> fix a negated conditional in getDecomposedInstantiationLocSlowCase,
which I think is rdar://6527005, and make getDecomposedSpellingLocSlowCase
handle nested spelling locations.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63030 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
d2051b43cbbcb5a549ffd24134bf0a33f83469a9 26-Jan-2009 Chris Lattner <sabre@nondot.org> start plumbing together the line table information. So far we just
unique the Filenames in #line directives, assigning them UIDs.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63010 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
5b9a504720fb52594ca3686e10eb6c0cfa2e7d62 26-Jan-2009 Chris Lattner <sabre@nondot.org> start plumbing together the line table information. So far we just
unique the Filenames in #line directives, assigning them UIDs.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63010 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
68b28fff13a7e8e23096cd314a97b02bae06490e 26-Jan-2009 Chris Lattner <sabre@nondot.org> Lazily paging in file contents is a big win for PTH, strip out the old
testing code.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63006 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
987cd3da36e90aa21a9e290f5b383cf010762b83 26-Jan-2009 Chris Lattner <sabre@nondot.org> Lazily paging in file contents is a big win for PTH, strip out the old
testing code.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63006 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
27c0ced6e7af1b40d1e26a366eee2f95089edb47 26-Jan-2009 Chris Lattner <sabre@nondot.org> Check in the long promised SourceLocation rewrite. This lays the
ground work for implementing #line, and fixes the "out of macro ID's"
problem.

There is nothing particularly tricky about the code, other than the
very performance sensitive SourceManager::getFileID() method.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62978 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
de7aeefc5573d669ed476d7bda7a8940d3bcadb7 26-Jan-2009 Chris Lattner <sabre@nondot.org> Check in the long promised SourceLocation rewrite. This lays the
ground work for implementing #line, and fixes the "out of macro ID's"
problem.

There is nothing particularly tricky about the code, other than the
very performance sensitive SourceManager::getFileID() method.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62978 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
ff235da00701306ec70390c3ede586c93d63ef44 24-Jan-2009 Anders Carlsson <andersca@mac.com> Handle the 'e' constraint. Fixes PR3385

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62923 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
79bc64ceb2586246c74b2584be56ecef00a0c9c1 24-Jan-2009 Anders Carlsson <andersca@mac.com> Handle the 'e' constraint. Fixes PR3385

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62923 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1e1a34ba17b133e3476506c3e2f2c4524e71be61 23-Jan-2009 Ted Kremenek <kremenek@apple.com> Added virtual method DiagnosticClient::IncludeInDiagnosticCounts(). This is used by Diagnostics to determine if a diagnostic sent to a given DiagnosticClient should be included in the count of diagnostics. The default implementation of this method returns 'true'.

Implemented DiagCollector::IncludeInDiagnosticCounts() to return 'false' so that the batching of diagnostics for use with BugReporter doesn't mess up the count of real diagnostics.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62873 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
cabe66811fe43835b8c5a0854552768fc53261e3 23-Jan-2009 Ted Kremenek <kremenek@apple.com> Added virtual method DiagnosticClient::IncludeInDiagnosticCounts(). This is used by Diagnostics to determine if a diagnostic sent to a given DiagnosticClient should be included in the count of diagnostics. The default implementation of this method returns 'true'.

Implemented DiagCollector::IncludeInDiagnosticCounts() to return 'false' so that the batching of diagnostics for use with BugReporter doesn't mess up the count of real diagnostics.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62873 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
5b747d00f5b116bb9764242c51d2a90ba7307f6f 21-Jan-2009 Chris Lattner <sabre@nondot.org> Add a bit to IdentifierInfo that acts as a simple predicate which
tells us whether Preprocessor::HandleIdentifier needs to be called.
Because this method is only rarely needed, this saves a call and a
bunch of random checks. This drops the time in HandleIdentifier
from 3.52ms to .98ms on cocoa.h on my machine.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62675 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
6a170eb3ea6d6319277becabef68eb1a26bf8766 21-Jan-2009 Chris Lattner <sabre@nondot.org> Add a bit to IdentifierInfo that acts as a simple predicate which
tells us whether Preprocessor::HandleIdentifier needs to be called.
Because this method is only rarely needed, this saves a call and a
bunch of random checks. This drops the time in HandleIdentifier
from 3.52ms to .98ms on cocoa.h on my machine.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62675 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
e807f8520de8e3bdf61a1f0b74891aebd88539f0 21-Jan-2009 Ted Kremenek <kremenek@apple.com> Fix: <rdar://problem/6510344> [pth] PTH slows down regular lexer considerably (when it has substantial work)

Changes to IdentifierTable:
- High-level summary: StringMap never owns IdentifierInfos. It just
references them.
- The string map now has StringMapEntry<IdentifierInfo*> instead of
StringMapEntry<IdentifierInfo>. The IdentifierInfo object is
allocated using the same bump pointer allocator as used by the
StringMap.

Changes to IdentifierInfo:
- Added an extra pointer to point to the
StringMapEntry<IdentifierInfo*> in the string map. This pointer
will be null if the IdentifierInfo* is *only* used by the PTHLexer
(that is it isn't in the StringMap).

Algorithmic changes:
- Non-PTH case:
IdentifierInfo::get() will always consult the StringMap first to
see if we have an IdentifierInfo object. If that StringMapEntry
references a null pointer, we allocate a new one from the BumpPtrAllocator
and update the reference in the StringMapEntry.
- PTH case:
We do the same lookup as with the non-PTH case, but if we don't get
a hit in the StringMap we do a secondary lookup in the PTHManager for
the IdentifierInfo. If we don't find an IdentifierInfo we create a
new one as in the non-PTH case. If we do find and IdentifierInfo
in the PTHManager, we update the StringMapEntry to refer to it so
that the IdentifierInfo will be found on the next StringMap lookup.
This way we only do a binary search in the PTH file at most once
for a given IdentifierInfo. This greatly speeds things up for source
files containing a non-trivial amount of code.

Performance impact:
While these changes do add some extra indirection in
IdentifierTable to access an IdentifierInfo*, I saw speedups even
in the non-PTH case as well.

Non-PTH: For -fsyntax-only on Cocoa.h, we see a 6% speedup.
PTH (with Cocoa.h in token cache): 11% speedup.

I also did an experiment where we did -fsyntax-only on a source file
including a large header and Cocoa.h, but the token cache did not
contain the larger header. For this file, we were seeing a performance
*regression* when using PTH of 3% over non-PTH. Now we are seeing
a performance improvement of 9%!

Tests:
The serialization tests are now failing. I looked at this extensively,
and I my belief is that this change is unmasking a bug rather than
introducing a new one. I have disabled the serialization tests for now.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62636 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
ea9c26b3dbd74a1497f5609ae6e19a85f42b6073 21-Jan-2009 Ted Kremenek <kremenek@apple.com> Fix: <rdar://problem/6510344> [pth] PTH slows down regular lexer considerably (when it has substantial work)

Changes to IdentifierTable:
- High-level summary: StringMap never owns IdentifierInfos. It just
references them.
- The string map now has StringMapEntry<IdentifierInfo*> instead of
StringMapEntry<IdentifierInfo>. The IdentifierInfo object is
allocated using the same bump pointer allocator as used by the
StringMap.

Changes to IdentifierInfo:
- Added an extra pointer to point to the
StringMapEntry<IdentifierInfo*> in the string map. This pointer
will be null if the IdentifierInfo* is *only* used by the PTHLexer
(that is it isn't in the StringMap).

Algorithmic changes:
- Non-PTH case:
IdentifierInfo::get() will always consult the StringMap first to
see if we have an IdentifierInfo object. If that StringMapEntry
references a null pointer, we allocate a new one from the BumpPtrAllocator
and update the reference in the StringMapEntry.
- PTH case:
We do the same lookup as with the non-PTH case, but if we don't get
a hit in the StringMap we do a secondary lookup in the PTHManager for
the IdentifierInfo. If we don't find an IdentifierInfo we create a
new one as in the non-PTH case. If we do find and IdentifierInfo
in the PTHManager, we update the StringMapEntry to refer to it so
that the IdentifierInfo will be found on the next StringMap lookup.
This way we only do a binary search in the PTH file at most once
for a given IdentifierInfo. This greatly speeds things up for source
files containing a non-trivial amount of code.

Performance impact:
While these changes do add some extra indirection in
IdentifierTable to access an IdentifierInfo*, I saw speedups even
in the non-PTH case as well.

Non-PTH: For -fsyntax-only on Cocoa.h, we see a 6% speedup.
PTH (with Cocoa.h in token cache): 11% speedup.

I also did an experiment where we did -fsyntax-only on a source file
including a large header and Cocoa.h, but the token cache did not
contain the larger header. For this file, we were seeing a performance
*regression* when using PTH of 3% over non-PTH. Now we are seeing
a performance improvement of 9%!

Tests:
The serialization tests are now failing. I looked at this extensively,
and I my belief is that this change is unmasking a bug rather than
introducing a new one. I have disabled the serialization tests for now.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62636 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
1737bd5b2ae87c2fe2d50868c2158f7f91516cf4 19-Jan-2009 Chris Lattner <sabre@nondot.org> Rename SourceManager::getCanonicalFileID -> getFileID. There is
no longer such thing as a non-canonical FileID.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62499 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
a11d61793341fea195c29a0dab3fbd74f2b39a8c 19-Jan-2009 Chris Lattner <sabre@nondot.org> Rename SourceManager::getCanonicalFileID -> getFileID. There is
no longer such thing as a non-canonical FileID.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62499 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
c69327fe19231ce503fb14100c4f79759aed9435 19-Jan-2009 Chris Lattner <sabre@nondot.org> remove the public SourceManager::getContentCacheForLoc method.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62497 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
2fa3ec888a980bf09e3d68435e227d3c4280bf70 19-Jan-2009 Chris Lattner <sabre@nondot.org> remove the public SourceManager::getContentCacheForLoc method.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62497 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
9b94e1bc3596363efdc356e70648efb92048f6ef 19-Jan-2009 Chris Lattner <sabre@nondot.org> remove the SourceManager:: and FullSourceLoc::getFileEntryForLoc methods.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62496 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
b21e5a0fdd9bd6e6c6885428798070f0a9f71295 19-Jan-2009 Chris Lattner <sabre@nondot.org> remove the SourceManager:: and FullSourceLoc::getFileEntryForLoc methods.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62496 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
71e443ac92dfcabc34e8c1a9ac12a7ab602b9d37 19-Jan-2009 Chris Lattner <sabre@nondot.org> SourceManager::getBufferData(SourceLocation) is dead, delete it.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62495 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
31530bae788dea5c79e72a1f99a56c3f5c6aa36f 19-Jan-2009 Chris Lattner <sabre@nondot.org> SourceManager::getBufferData(SourceLocation) is dead, delete it.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62495 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
10ea72bafb85f8f60f3547db54c7f9f990e821a3 19-Jan-2009 Chris Lattner <sabre@nondot.org> some minor cleanups to SourceManager, and eliminate the
SourceManager::getBuffer(SourceLocation) method.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62494 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
ourceManager.cpp
a90a4d4a0a365f991b92e925436ec63ef4969839 19-Jan-2009 Chris Lattner <sabre@nondot.org> some minor cleanups to SourceManager, and eliminate the
SourceManager::getBuffer(SourceLocation) method.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62494 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
ourceManager.cpp
a3e9bd2f35cbaceff3258966540bd916eb98dc01 18-Jan-2009 Anders Carlsson <andersca@mac.com> Handle the 'X' constraint. Fixes <rdar://problem/6504897>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62446 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
775841fd76a7aead92c10cec4acb5e8a199f53b1 18-Jan-2009 Anders Carlsson <andersca@mac.com> Handle the 'X' constraint. Fixes <rdar://problem/6504897>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62446 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
b5c856952c206e629257552bc453cfa3975eb800 18-Jan-2009 Anders Carlsson <andersca@mac.com> Add sema support for symbolic names in inline asm statements.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62441 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
42e1ee0702d8267d632df0fdb5c479a582877c6f 18-Jan-2009 Anders Carlsson <andersca@mac.com> Add sema support for symbolic names in inline asm statements.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62441 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
ff1ba1f740734ddb0e40207462307a489cefc685 18-Jan-2009 Nate Begeman <natebegeman@mac.com> Fit in 80 cols


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62439 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
ca0134259bd498b397c304a0f5b6a55bdaba05cc 18-Jan-2009 Nate Begeman <natebegeman@mac.com> Fit in 80 cols


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62439 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
2aaa0a0c99d5288309144eee09e9247cea6c3df5 18-Jan-2009 Nate Begeman <natebegeman@mac.com> Allow targets to override IntMaxTWidth


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62434 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
22b9d5a1fd9067785b62d9237bae6ee2a9b40afc 18-Jan-2009 Nate Begeman <natebegeman@mac.com> Allow targets to override IntMaxTWidth


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62434 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
7b49cec50220b69d83616aea2d5da3ce049611a0 18-Jan-2009 Anders Carlsson <andersca@mac.com> Change TargetInfo::validateInputConstraint to take begin/end name iterators instead of the number of outputs. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62433 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
45b050e72d058131e6f169fe54888bb91a003fb5 18-Jan-2009 Anders Carlsson <andersca@mac.com> Change TargetInfo::validateInputConstraint to take begin/end name iterators instead of the number of outputs. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62433 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
10aaf53ac6464331d773706c1c66f5cc00e44817 17-Jan-2009 Chris Lattner <sabre@nondot.org> Rename SourceLocation::getFileID to getChunkID, because it returns
the chunk ID not the file ID. This exposes problems in
TextDiagnosticPrinter where it should have been using the canonical
file ID but wasn't. Fix these along the way.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62427 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
ourceManager.cpp
3b4d5e955e819dd3a4bed37ea2e47d6e4cb05274 17-Jan-2009 Chris Lattner <sabre@nondot.org> Rename SourceLocation::getFileID to getChunkID, because it returns
the chunk ID not the file ID. This exposes problems in
TextDiagnosticPrinter where it should have been using the canonical
file ID but wasn't. Fix these along the way.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62427 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
ourceManager.cpp
f4f776a489cfcf4fda9a8c6a16329c7a1f726561 17-Jan-2009 Chris Lattner <sabre@nondot.org> this massive patch introduces a simple new abstraction: it makes
"FileID" a concept that is now enforced by the compiler's type checker
instead of yet-another-random-unsigned floating around.

This is an important distinction from the "FileID" currently tracked by
SourceLocation. *That* FileID may refer to the start of a file or to a
chunk within it. The new FileID *only* refers to the file (and its
#include stack and eventually #line data), it cannot refer to a chunk.

FileID is a completely opaque datatype to all clients, only SourceManager
is allowed to poke and prod it.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62407 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
ourceManager.cpp
2b2453a7d8fe732561795431f39ceb2b2a832d84 17-Jan-2009 Chris Lattner <sabre@nondot.org> this massive patch introduces a simple new abstraction: it makes
"FileID" a concept that is now enforced by the compiler's type checker
instead of yet-another-random-unsigned floating around.

This is an important distinction from the "FileID" currently tracked by
SourceLocation. *That* FileID may refer to the start of a file or to a
chunk within it. The new FileID *only* refers to the file (and its
#include stack and eventually #line data), it cannot refer to a chunk.

FileID is a completely opaque datatype to all clients, only SourceManager
is allowed to poke and prod it.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62407 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
ourceManager.cpp
ac49bb4836894b75d0dc2f6fb2703ed7a8d9ff35 17-Jan-2009 Chris Lattner <sabre@nondot.org> make "ContentCache::Buffer" mutable to avoid a const_cast.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62403 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
05816591ec488a933dfecc9ff9f3cbf3c32767c2 17-Jan-2009 Chris Lattner <sabre@nondot.org> make "ContentCache::Buffer" mutable to avoid a const_cast.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62403 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
438f939575eadda9724fe897c03328cdad1f0f81 17-Jan-2009 Chris Lattner <sabre@nondot.org> Make FullSourceLoc derive from SourceLocation instead of
containing one. Containment is generally better than derivation,
but in this case FullSourceLoc really 'isa' SourceLocation.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62375 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
a50bd54164393ca3cd08016e7099bdeb531b5014 17-Jan-2009 Chris Lattner <sabre@nondot.org> Make FullSourceLoc derive from SourceLocation instead of
containing one. Containment is generally better than derivation,
but in this case FullSourceLoc really 'isa' SourceLocation.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62375 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
6bca88b965b3d7a96bb97a86d93d8fdefa1d90c2 16-Jan-2009 Chris Lattner <sabre@nondot.org> elimiante FullSourceLoc::getCanonicalFileID



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62374 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
4abb87ef149b98b5762eadaaf10c1ccf35dc7c41 16-Jan-2009 Chris Lattner <sabre@nondot.org> elimiante FullSourceLoc::getCanonicalFileID



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62374 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
eccf95e552de02358e391977821137c3ecdba0d3 16-Jan-2009 Chris Lattner <sabre@nondot.org> remove FullSourceLoc::isFileID


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62371 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
0cf7bb937d5ed21118eeb45a93eb916723cc75a1 16-Jan-2009 Chris Lattner <sabre@nondot.org> remove FullSourceLoc::isFileID


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62371 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
18c8dc0eedcdf7c81028c1e29d001fd331a99a4c 16-Jan-2009 Chris Lattner <sabre@nondot.org> more SourceLocation lexicon change: instead of referring to the
"logical" location, refer to the "instantiation" location.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62316 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
ourceManager.cpp
f7cf85b330bedd2877e1371fb0a83e99751ae162 16-Jan-2009 Chris Lattner <sabre@nondot.org> more SourceLocation lexicon change: instead of referring to the
"logical" location, refer to the "instantiation" location.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62316 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
ourceManager.cpp
74f6701b77493fb60c98ac036e8a24eddaa6219b 16-Jan-2009 Chris Lattner <sabre@nondot.org> rename "virtual location" of a macro to "instantiation location".


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62315 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
88054dee0402e4d3c1f64e6b697acc47195c0d72 16-Jan-2009 Chris Lattner <sabre@nondot.org> rename "virtual location" of a macro to "instantiation location".


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62315 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
cdf600ee2c48a0299a0bc15da479b6a818c997ed 16-Jan-2009 Chris Lattner <sabre@nondot.org> Change some terminology in SourceLocation: instead of referring to
the "physical" location of tokens, refer to the "spelling" location.
This is more concrete and useful, tokens aren't really physical objects!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62309 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
ourceLocation.cpp
ourceManager.cpp
df7c17a8d02fe09a3466786bae3e40fc3252687a 16-Jan-2009 Chris Lattner <sabre@nondot.org> Change some terminology in SourceLocation: instead of referring to
the "physical" location of tokens, refer to the "spelling" location.
This is more concrete and useful, tokens aren't really physical objects!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62309 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
ourceLocation.cpp
ourceManager.cpp
d976c3d889dc90b684c4a3fbdbe975e525db6c4f 15-Jan-2009 Ted Kremenek <kremenek@apple.com> IdentifierInfo:
- IdentifierInfo can now (optionally) have its string data not be
co-located with itself. This is for use with PTH. This aspect is a
little gross, as getName() and getLength() now make assumptions
about a possible alternate representation of IdentifierInfo.
Perhaps we should make IdentifierInfo have virtual methods?

IdentifierTable:
- Added class "IdentifierInfoLookup" that can be used by
IdentifierTable to perform "string -> IdentifierInfo" lookups using
an auxilliary data structure. This is used by PTH.
- Perform tests show that IdentifierTable::get() does not slow down
because of the extra check for the IdentiferInfoLookup object (the
regular StringMap lookup does enough work to mitigate the impact of
an extra null pointer check).
- The upshot is that now that some IdentifierInfo objects might be
owned by the IdentiferInfoLookup object. This should be reviewed.

PTH:
- Modified PTHManager::GetIdentifierInfo to *not* insert entries in
IdentifierTable's string map, and instead create IdentifierInfo
objects on the fly when mapping from persistent IDs to
IdentifierInfos. This saves a ton of work with string copies,
hashing, and StringMap lookup and resizing. This change was
motivated because when processing source files in the PTH cache we
don't need to do any string -> IdentifierInfo lookups.
- PTHManager now subclasses IdentifierInfoLookup, allowing clients of
IdentifierTable to transparently use IdentifierInfo objects managed
by the PTH file. PTHManager resolves "string -> IdentifierInfo"
queries by doing a binary search over a sorted table of identifier
strings in the PTH file (the exact algorithm we use can be changed
as needed).

These changes lead to the following performance changes when using PTH on Cocoa.h:
- fsyntax-only: 10% performance improvement
- Eonly: 30% performance improvement


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62273 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
72b1b15ee88aac0a63e2c1dc53fe22f5ab297b20 15-Jan-2009 Ted Kremenek <kremenek@apple.com> IdentifierInfo:
- IdentifierInfo can now (optionally) have its string data not be
co-located with itself. This is for use with PTH. This aspect is a
little gross, as getName() and getLength() now make assumptions
about a possible alternate representation of IdentifierInfo.
Perhaps we should make IdentifierInfo have virtual methods?

IdentifierTable:
- Added class "IdentifierInfoLookup" that can be used by
IdentifierTable to perform "string -> IdentifierInfo" lookups using
an auxilliary data structure. This is used by PTH.
- Perform tests show that IdentifierTable::get() does not slow down
because of the extra check for the IdentiferInfoLookup object (the
regular StringMap lookup does enough work to mitigate the impact of
an extra null pointer check).
- The upshot is that now that some IdentifierInfo objects might be
owned by the IdentiferInfoLookup object. This should be reviewed.

PTH:
- Modified PTHManager::GetIdentifierInfo to *not* insert entries in
IdentifierTable's string map, and instead create IdentifierInfo
objects on the fly when mapping from persistent IDs to
IdentifierInfos. This saves a ton of work with string copies,
hashing, and StringMap lookup and resizing. This change was
motivated because when processing source files in the PTH cache we
don't need to do any string -> IdentifierInfo lookups.
- PTHManager now subclasses IdentifierInfoLookup, allowing clients of
IdentifierTable to transparently use IdentifierInfo objects managed
by the PTH file. PTHManager resolves "string -> IdentifierInfo"
queries by doing a binary search over a sorted table of identifier
strings in the PTH file (the exact algorithm we use can be changed
as needed).

These changes lead to the following performance changes when using PTH on Cocoa.h:
- fsyntax-only: 10% performance improvement
- Eonly: 30% performance improvement


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62273 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
c87c346a7e12dde38568053c9fc672761ee8432b 12-Jan-2009 Anders Carlsson <andersca@mac.com> Make sure to initialize the ConstraintInfo to 0

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62068 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
0e936db474731964e72c11a4b24dd75460457f8d 12-Jan-2009 Anders Carlsson <andersca@mac.com> Make sure to initialize the ConstraintInfo to 0

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62068 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
2bb9e6c5493c744a439c4800bcde4d0a190dee23 06-Jan-2009 Ted Kremenek <kremenek@apple.com> SourceManager: Implement "lazy" creation of MemBuffers for source files.

- Big Idea:
Source files are now mmaped when ContentCache::getBuffer() is first called.
While this doesn't change the functionality when lexing regular source files,
it can result in source files not being paged in when using PTH.

- Performance change:
- No observable difference (-fsyntax-only/-Eonly) on Cocoa.h when doing
regular source lexing.
- No observable time difference (-fsyntax-only/-Eonly) on Cocoa.h when using
PTH. We do observe, however, a reduction of 279K in memory mapped source
code (3% reduction). The majority of pages from Cocoa.h (and friends) are
still being pulled in, however, because any literal will cause
Preprocessor::getSpelling() to be called (causing the source for the file to
get pulled in). The next possible optimization is to cache literal strings
in the PTH file to avoid the need for the original header sources entirely.

- Right now there is a preprocessor directive to toggle between "lazy" and
"eager" creation of MemBuffers. This is not permanent, and is there in the
short term to just test additional optimizations.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61827 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
5b034ad3ec0aa1ad6bcb3624390f030038670705 06-Jan-2009 Ted Kremenek <kremenek@apple.com> SourceManager: Implement "lazy" creation of MemBuffers for source files.

- Big Idea:
Source files are now mmaped when ContentCache::getBuffer() is first called.
While this doesn't change the functionality when lexing regular source files,
it can result in source files not being paged in when using PTH.

- Performance change:
- No observable difference (-fsyntax-only/-Eonly) on Cocoa.h when doing
regular source lexing.
- No observable time difference (-fsyntax-only/-Eonly) on Cocoa.h when using
PTH. We do observe, however, a reduction of 279K in memory mapped source
code (3% reduction). The majority of pages from Cocoa.h (and friends) are
still being pulled in, however, because any literal will cause
Preprocessor::getSpelling() to be called (causing the source for the file to
get pulled in). The next possible optimization is to cache literal strings
in the PTH file to avoid the need for the original header sources entirely.

- Right now there is a preprocessor directive to toggle between "lazy" and
"eager" creation of MemBuffers. This is not permanent, and is there in the
short term to just test additional optimizations.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61827 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
aa7dac17162eab1e9e0b84f4b710fc3e8a06aa97 06-Jan-2009 Ted Kremenek <kremenek@apple.com> Misc changes to SourceManager::ContentCache:
- 'Buffer' is now private and must be accessed via 'getBuffer()'.
This paves the way for lazily mapping in source files on demand.
- Added 'getSize()' (which gets the size of the content without
necessarily accessing the MemBuffer) and 'getSizeBytesMapped()'.
- Modifed SourceManager to use these new methods. This reduces the
number of places that actually access the MemBuffer object for a file
to those that actually look at the character data.

These changes result in no performance change for -fsyntax-only on Cocoa.h.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61782 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
c16c208e8519476d838ad11fffc8e0ecea50550d 06-Jan-2009 Ted Kremenek <kremenek@apple.com> Misc changes to SourceManager::ContentCache:
- 'Buffer' is now private and must be accessed via 'getBuffer()'.
This paves the way for lazily mapping in source files on demand.
- Added 'getSize()' (which gets the size of the content without
necessarily accessing the MemBuffer) and 'getSizeBytesMapped()'.
- Modifed SourceManager to use these new methods. This reduces the
number of places that actually access the MemBuffer object for a file
to those that actually look at the character data.

These changes result in no performance change for -fsyntax-only on Cocoa.h.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61782 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
d7bc88b153eefe3a8ce8be467c966b4ea7f58944 05-Dec-2008 Chris Lattner <sabre@nondot.org> instead of forcing blocks on by default, make them default to off, but let
specific targets default them to on. Default blocks to on on 10.6 and later.
Add a -fblocks option that allows the user to override the target's default.
Use -fblocks in the various testcases that use blocks.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60563 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
ae0ee03fd9d36446ee70e502fdaf5ed5acec269f 05-Dec-2008 Chris Lattner <sabre@nondot.org> instead of forcing blocks on by default, make them default to off, but let
specific targets default them to on. Default blocks to on on 10.6 and later.
Add a -fblocks option that allows the user to override the target's default.
Use -fblocks in the various testcases that use blocks.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60563 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
ddae7103e6b6651d879f55c97c16829dda1204fd 04-Dec-2008 Chris Lattner <sabre@nondot.org> replace useNeXTRuntimeAsDefault with a generic hook that allows targets
to specify their default language options.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60561 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
8fc4dfb30e8bd94ca2ea7adb6cbece04fb96cd99 04-Dec-2008 Chris Lattner <sabre@nondot.org> replace useNeXTRuntimeAsDefault with a generic hook that allows targets
to specify their default language options.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60561 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
c43ec3bef6b1dc0ec66020173756c1fea95ffb3d 27-Nov-2008 Sebastian Redl <sebastian.redl@getdesigned.at> Fix order of evaluation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60160 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
e20653219732b03294130999415fc3aa92d2336a 27-Nov-2008 Sebastian Redl <sebastian.redl@getdesigned.at> Fix order of evaluation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60160 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
3a8f294d0c43fe0a3e1fc1612bc1a42d55172cae 24-Nov-2008 Chris Lattner <sabre@nondot.org> Rename Selector::getName() to Selector::getAsString(), and add
a new NamedDecl::getAsString() method.

Change uses of Selector::getName() to just pass in a Selector
where possible (e.g. to diagnostics) instead of going through
an std::string.

This also adds new formatters for objcinstance and objcclass
as described in the dox.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59933 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
077bf5e2f48acfa9e7d69429b6e4ba86ea14896d 24-Nov-2008 Chris Lattner <sabre@nondot.org> Rename Selector::getName() to Selector::getAsString(), and add
a new NamedDecl::getAsString() method.

Change uses of Selector::getName() to just pass in a Selector
where possible (e.g. to diagnostics) instead of going through
an std::string.

This also adds new formatters for objcinstance and objcclass
as described in the dox.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59933 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
b175342d2ca2d747f964604249138e04f32116b9 23-Nov-2008 Chris Lattner <sabre@nondot.org> Convert IdentifierInfo's to be printed the same as DeclarationNames
with implicit quotes around them. This has a bunch of follow-on
effects and requires tweaking to a whole lot of code. This causes
a regression in two tests (xfailed) by causing it to emit things like:

Line 10: duplicate interface declaration for category 'MyClass1' ('Category1')

instead of:

Line 10: duplicate interface declaration for category 'MyClass1(Category1)'

I will fix this in a follow-up commit.

As part of this, I had to start switching stuff to use ->getDeclName() instead
of Decl::getName() for consistency. This is good, but I was planning to do this
as an independent patch. There will be several follow-on patches
to clean up some of the mess, but this patch is already too big.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59917 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
08631c5fa053867146b5ee8be658c229f6bf127c 23-Nov-2008 Chris Lattner <sabre@nondot.org> Convert IdentifierInfo's to be printed the same as DeclarationNames
with implicit quotes around them. This has a bunch of follow-on
effects and requires tweaking to a whole lot of code. This causes
a regression in two tests (xfailed) by causing it to emit things like:

Line 10: duplicate interface declaration for category 'MyClass1' ('Category1')

instead of:

Line 10: duplicate interface declaration for category 'MyClass1(Category1)'

I will fix this in a follow-up commit.

As part of this, I had to start switching stuff to use ->getDeclName() instead
of Decl::getName() for consistency. This is good, but I was planning to do this
as an independent patch. There will be several follow-on patches
to clean up some of the mess, but this patch is already too big.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59917 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
254de7dd490d1163d6dad4302f5d8b7f9ae3dc30 23-Nov-2008 Chris Lattner <sabre@nondot.org> add support for inserting a DeclarationName into a diagnostic directly
without calling getAsString(). This implicitly puts quotes around the
name, so diagnostics need to be tweaked to accommodate this.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59916 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
011bb4edf731d529da1cbf71c7c2696aaf5a054f 23-Nov-2008 Chris Lattner <sabre@nondot.org> add support for inserting a DeclarationName into a diagnostic directly
without calling getAsString(). This implicitly puts quotes around the
name, so diagnostics need to be tweaked to accommodate this.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59916 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
f5b269a115352029a14d81c44647f042bbf6843c 23-Nov-2008 Chris Lattner <sabre@nondot.org> Genericize the qualtype formating callback to support any diag argument.
No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59908 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
3fdf4b071dc79fae778fb5f376485480756c76a3 23-Nov-2008 Chris Lattner <sabre@nondot.org> Genericize the qualtype formating callback to support any diag argument.
No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59908 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
da5c087ebf3d47b40bae2e99671ce1929156a427 23-Nov-2008 Chris Lattner <sabre@nondot.org> Add support for sending QualType's directly into diags and convert two
diags over to use this. QualTypes implicitly print single quotes around
them for uniformity and future extension.

Doing this requires a little function pointer dance to prevent libbasic
from depending on libast.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59907 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
22caddc91d2f6186739c6b20ec58ed38cd68e595 23-Nov-2008 Chris Lattner <sabre@nondot.org> Add support for sending QualType's directly into diags and convert two
diags over to use this. QualTypes implicitly print single quotes around
them for uniformity and future extension.

Doing this requires a little function pointer dance to prevent libbasic
from depending on libast.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59907 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
fd9f2acf08cdc747bccfe6642c8a2d52d1c1cf89 22-Nov-2008 Sebastian Redl <sebastian.redl@getdesigned.at> Implement a %plural modifier for complex plural forms in diagnostics. Use it in the overload diagnostics.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59871 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
e4c452c4c7b9124fe94a96f559ff077d59cdf996 22-Nov-2008 Sebastian Redl <sebastian.redl@getdesigned.at> Implement a %plural modifier for complex plural forms in diagnostics. Use it in the overload diagnostics.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59871 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
9943e982658785c2c0ecc3af88a1c0111e9b7749 22-Nov-2008 Chris Lattner <sabre@nondot.org> Split the DiagnosticInfo class into two disjoint classes:
one for building up the diagnostic that is in flight (DiagnosticBuilder)
and one for pulling structured information out of the diagnostic when
formatting and presenting it.

There is no functionality change with this patch.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59849 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
3cbfe2c4159e0a219ae660d50625c013aa4afbd0 22-Nov-2008 Chris Lattner <sabre@nondot.org> Split the DiagnosticInfo class into two disjoint classes:
one for building up the diagnostic that is in flight (DiagnosticBuilder)
and one for pulling structured information out of the diagnostic when
formatting and presenting it.

There is no functionality change with this patch.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59849 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
a7021ee6987ae13adedcae2b37f6d820cd8ac07e 21-Nov-2008 Chris Lattner <sabre@nondot.org> Add the concept of "modifiers" to the clang diagnostic format
strings. This allows us to have considerable flexibility in how
these things are displayed and provides extra information that
allows us to merge away diagnostics that are very similar.

Diagnostic modifiers are a string of characters with the regex
[-a-z]+ that occur between the % and digit. They may
optionally have an argument that can parameterize them.

For now, I've added two example modifiers. One is a very useful
tool that allows you to factor commonality across diagnostics
that need single words or phrases combined. Basically you can
use %select{a|b|c}4 with with an integer argument that selects
either a/b/c based on an integer value in the range [0..3).

The second modifier is also an integer modifier, aimed to help
English diagnostics handle plurality. "%s3" prints to 's' if
integer argument #3 is not 1, otherwise it prints to nothing.
I'm fully aware that 's' is an English concept and doesn't
apply to all situations (mouse vs mice). However, this is very
useful and we can add other crazy modifiers once we add support
for polish! ;-)

I converted a couple C++ diagnostics over to use this as an
example, I'd appreciate it if others could merge the other
likely candiates. If you have other modifiers that you want,
lets talk on cfe-dev.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59803 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
af7ae4e8160fc5c23e471f2125b3fe5911e3532a 21-Nov-2008 Chris Lattner <sabre@nondot.org> Add the concept of "modifiers" to the clang diagnostic format
strings. This allows us to have considerable flexibility in how
these things are displayed and provides extra information that
allows us to merge away diagnostics that are very similar.

Diagnostic modifiers are a string of characters with the regex
[-a-z]+ that occur between the % and digit. They may
optionally have an argument that can parameterize them.

For now, I've added two example modifiers. One is a very useful
tool that allows you to factor commonality across diagnostics
that need single words or phrases combined. Basically you can
use %select{a|b|c}4 with with an integer argument that selects
either a/b/c based on an integer value in the range [0..3).

The second modifier is also an integer modifier, aimed to help
English diagnostics handle plurality. "%s3" prints to 's' if
integer argument #3 is not 1, otherwise it prints to nothing.
I'm fully aware that 's' is an English concept and doesn't
apply to all situations (mouse vs mice). However, this is very
useful and we can add other crazy modifiers once we add support
for polish! ;-)

I converted a couple C++ diagnostics over to use this as an
example, I'd appreciate it if others could merge the other
likely candiates. If you have other modifiers that you want,
lets talk on cfe-dev.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59803 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
e46b8797fa40245512e73af79c497328e9d606b5 19-Nov-2008 Chris Lattner <sabre@nondot.org> Allow sending IdentifierInfo*'s into Diagnostics without turning them into strings
first. This should allow removal of a bunch of II->getName() calls.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59601 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
43b628cd47ecdc3caf640d79b3ad7ecef0f2c285 19-Nov-2008 Chris Lattner <sabre@nondot.org> Allow sending IdentifierInfo*'s into Diagnostics without turning them into strings
first. This should allow removal of a bunch of II->getName() calls.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59601 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
68f621cb6c43392e164c6fdbda71bc8f3b94962b 19-Nov-2008 Chris Lattner <sabre@nondot.org> add direct support for signed and unsigned integer arguments to diagnostics.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59598 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
30bc96544346bea42921cf6837e66cef80d664b4 19-Nov-2008 Chris Lattner <sabre@nondot.org> add direct support for signed and unsigned integer arguments to diagnostics.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59598 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
be8e5a477c5a51ff39a1c0cfec253b67bfb97ca4 19-Nov-2008 Chris Lattner <sabre@nondot.org> rewrite FormatDiagnostic to be less gross and a lot more efficient.
This also makes it illegal to have bare '%'s in diagnostics. If you
want a % in a diagnostic, use %%.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59596 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
f4c839657742b823cea1a95b18422f1ba74d3ddd 19-Nov-2008 Chris Lattner <sabre@nondot.org> rewrite FormatDiagnostic to be less gross and a lot more efficient.
This also makes it illegal to have bare '%'s in diagnostics. If you
want a % in a diagnostic, use %%.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59596 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
0cb74051d520bf8c70063e03f59b45fc3226734e 19-Nov-2008 Chris Lattner <sabre@nondot.org> implement a transparent optimization with the diagnostics stuff:
const char*'s are now not converted to std::strings when the diagnostic
is formed, we just hold onto their pointer and format as needed.

This commit makes DiagnosticClient::FormatDiagnostic even more of a
mess, I'll fix it in the next commit.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59593 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
73d2a1b05bb04ab0136af374ddaa5d4602d4c939 19-Nov-2008 Chris Lattner <sabre@nondot.org> implement a transparent optimization with the diagnostics stuff:
const char*'s are now not converted to std::strings when the diagnostic
is formed, we just hold onto their pointer and format as needed.

This commit makes DiagnosticClient::FormatDiagnostic even more of a
mess, I'll fix it in the next commit.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59593 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
96a32ddc1349db9772d01530425bca2af481f0a2 18-Nov-2008 Douglas Gregor <doug.gregor@gmail.com> Extend DeclarationName to support C++ overloaded operators, e.g.,
operator+, directly, using the same mechanism as all other special
names.

Removed the "special" identifiers for the overloaded operators from
the identifier table and IdentifierInfo data structure. IdentifierInfo
is back to representing only real identifiers.

Added a new Action, ActOnOperatorFunctionIdExpr, that builds an
expression from an parsed operator-function-id (e.g., "operator
+"). ActOnIdentifierExpr used to do this job, but
operator-function-ids are no longer represented by IdentifierInfo's.

Extended Declarator to store overloaded operator names.
Sema::GetNameForDeclarator now knows how to turn the operator
name into a DeclarationName for the overloaded operator.

Except for (perhaps) consolidating the functionality of
ActOnIdentifier, ActOnOperatorFunctionIdExpr, and
ActOnConversionFunctionExpr into a common routine that builds an
appropriate DeclRefExpr by looking up a DeclarationName, all of the
work on normalizing declaration names should be complete with this
commit.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59526 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
e94ca9e4371c022329270436b3dd77adc4ddfa8f 18-Nov-2008 Douglas Gregor <dgregor@apple.com> Extend DeclarationName to support C++ overloaded operators, e.g.,
operator+, directly, using the same mechanism as all other special
names.

Removed the "special" identifiers for the overloaded operators from
the identifier table and IdentifierInfo data structure. IdentifierInfo
is back to representing only real identifiers.

Added a new Action, ActOnOperatorFunctionIdExpr, that builds an
expression from an parsed operator-function-id (e.g., "operator
+"). ActOnIdentifierExpr used to do this job, but
operator-function-ids are no longer represented by IdentifierInfo's.

Extended Declarator to store overloaded operator names.
Sema::GetNameForDeclarator now knows how to turn the operator
name into a DeclarationName for the overloaded operator.

Except for (perhaps) consolidating the functionality of
ActOnIdentifier, ActOnOperatorFunctionIdExpr, and
ActOnConversionFunctionExpr into a common routine that builds an
appropriate DeclRefExpr by looking up a DeclarationName, all of the
work on normalizing declaration names should be complete with this
commit.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59526 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
6948ae68efb71fc0ef50fbf240c3cc2ce8b97b2d 18-Nov-2008 Chris Lattner <sabre@nondot.org> This reworks some of the Diagnostic interfaces a bit to change how diagnostics
are formed. In particular, a diagnostic with all its strings and ranges is now
packaged up and sent to DiagnosticClients as a DiagnosticInfo instead of as a
ton of random stuff. This has the benefit of simplifying the interface, making
it more extensible, and allowing us to do more checking for things like access
past the end of the various arrays passed in.

In addition to introducing DiagnosticInfo, this also substantially changes how
Diagnostic::Report works. Instead of being passed in all of the info required
to issue a diagnostic, Report now takes only the required info (a location and
ID) and returns a fresh DiagnosticInfo *by value*. The caller is then free to
stuff strings and ranges into the DiagnosticInfo with the << operator. When
the dtor runs on the DiagnosticInfo object (which should happen at the end of
the statement), the diagnostic is actually emitted with all of the accumulated
information. This is a somewhat tricky dance, but it means that the
accumulated DiagnosticInfo is allowed to keep pointers to other expression
temporaries without those pointers getting invalidated.

This is just the minimal change to get this stuff working, but this will allow
us to eliminate the zillions of variant "Diag" methods scattered throughout
(e.g.) sema. For example, instead of calling:

Diag(BuiltinLoc, diag::err_overload_no_match, typeNames,
SourceRange(BuiltinLoc, RParenLoc));

We will soon be able to just do:

Diag(BuiltinLoc, diag::err_overload_no_match)
<< typeNames << SourceRange(BuiltinLoc, RParenLoc));

This scales better to support arbitrary types being passed in (not just
strings) in a type-safe way. Go operator overloading?!



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59502 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
0a14eee528a901c16f0e288fbc10a3abc1660d87 18-Nov-2008 Chris Lattner <sabre@nondot.org> This reworks some of the Diagnostic interfaces a bit to change how diagnostics
are formed. In particular, a diagnostic with all its strings and ranges is now
packaged up and sent to DiagnosticClients as a DiagnosticInfo instead of as a
ton of random stuff. This has the benefit of simplifying the interface, making
it more extensible, and allowing us to do more checking for things like access
past the end of the various arrays passed in.

In addition to introducing DiagnosticInfo, this also substantially changes how
Diagnostic::Report works. Instead of being passed in all of the info required
to issue a diagnostic, Report now takes only the required info (a location and
ID) and returns a fresh DiagnosticInfo *by value*. The caller is then free to
stuff strings and ranges into the DiagnosticInfo with the << operator. When
the dtor runs on the DiagnosticInfo object (which should happen at the end of
the statement), the diagnostic is actually emitted with all of the accumulated
information. This is a somewhat tricky dance, but it means that the
accumulated DiagnosticInfo is allowed to keep pointers to other expression
temporaries without those pointers getting invalidated.

This is just the minimal change to get this stuff working, but this will allow
us to eliminate the zillions of variant "Diag" methods scattered throughout
(e.g.) sema. For example, instead of calling:

Diag(BuiltinLoc, diag::err_overload_no_match, typeNames,
SourceRange(BuiltinLoc, RParenLoc));

We will soon be able to just do:

Diag(BuiltinLoc, diag::err_overload_no_match)
<< typeNames << SourceRange(BuiltinLoc, RParenLoc));

This scales better to support arbitrary types being passed in (not just
strings) in a type-safe way. Go operator overloading?!



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59502 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
e9bf3e3517ebed028186d62c3be3ceb989684c7e 18-Nov-2008 Chris Lattner <sabre@nondot.org> SourceManager::getLineNumber is logically const except for caching.
Use mutable to make it so.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59498 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
f812a45dd93634c9300ed5533bd26b56374714a1 18-Nov-2008 Chris Lattner <sabre@nondot.org> SourceManager::getLineNumber is logically const except for caching.
Use mutable to make it so.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59498 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
b034e281af9d2cb52c2606764de229c1fb825307 18-Nov-2008 Chris Lattner <sabre@nondot.org> Change the diagnostics interface to take an array of pointers to
strings instead of array of strings. This reduces string copying
in some not-very-important cases, but paves the way for future
improvements.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59494 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
2383b7f6aea2cb2bf2b5bfc0ec730f9354fecbbf 18-Nov-2008 Chris Lattner <sabre@nondot.org> Change the diagnostics interface to take an array of pointers to
strings instead of array of strings. This reduces string copying
in some not-very-important cases, but paves the way for future
improvements.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59494 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
6704b319467ad5bb8fa89aa800a7e47aba46f5cf 17-Nov-2008 Douglas Gregor <doug.gregor@gmail.com> Eliminate all of the placeholder identifiers used for constructors,
destructors, and conversion functions. The placeholders were used to
work around the fact that the parser and some of Sema really wanted
declarators to have simple identifiers; now, the code that deals with
declarators will use DeclarationNames.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59469 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
10bd36882406cdf4805e35add1ce2f11ab9ae152 17-Nov-2008 Douglas Gregor <dgregor@apple.com> Eliminate all of the placeholder identifiers used for constructors,
destructors, and conversion functions. The placeholders were used to
work around the fact that the parser and some of Sema really wanted
declarators to have simple identifiers; now, the code that deals with
declarators will use DeclarationNames.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59469 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
24afd4accaf5499312f05f1252463c6e0febf16d 17-Nov-2008 Douglas Gregor <doug.gregor@gmail.com> Introduction the DeclarationName class, as a single, general method of
representing the names of declarations in the C family of
languages. DeclarationName is used in NamedDecl to store the name of
the declaration (naturally), and ObjCMethodDecl is now a NamedDecl.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59441 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
2e1cd4264d363ca869bf37ef160902f211d21b8c 17-Nov-2008 Douglas Gregor <dgregor@apple.com> Introduction the DeclarationName class, as a single, general method of
representing the names of declarations in the C family of
languages. DeclarationName is used in NamedDecl to store the name of
the declaration (naturally), and ObjCMethodDecl is now a NamedDecl.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59441 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
5aba35c115b10a40ae55ae5e7dc558439a247117 16-Nov-2008 Chris Lattner <sabre@nondot.org> Fix PR3077: tokens that come from macro expansions whose macro was
defined in a system header should be treated as system header tokens
even if they are instantiated in a different place.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59418 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
e7f74fc1964527bcaeff1bdb979d67f8e9087097 16-Nov-2008 Chris Lattner <sabre@nondot.org> Fix PR3077: tokens that come from macro expansions whose macro was
defined in a system header should be treated as system header tokens
even if they are instantiated in a different place.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59418 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
65fedaf9bd026cf8863e24eeecade7b2a65e0030 14-Nov-2008 Douglas Gregor <doug.gregor@gmail.com> Add a new expression node, CXXOperatorCallExpr, which expresses a
function call created in response to the use of operator syntax that
resolves to an overloaded operator in C++, e.g., "str1 +
str2" that resolves to std::operator+(str1, str2)". We now build a
CXXOperatorCallExpr in C++ when we pick an overloaded operator. (But
only for binary operators, where we actually implement overloading)

I decided *not* to refactor the current CallExpr to make it abstract
(with FunctionCallExpr and CXXOperatorCallExpr as derived
classes). Doing so would allow us to make CXXOperatorCallExpr a little
bit smaller, at the cost of making the argument and callee accessors
virtual. We won't know if this is going to be a win until we can parse
lots of C++ code to determine how much memory we'll save by making
this change vs. the performance penalty due to the extra virtual
calls.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59306 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
b4609806e9232593ece09ce08b630836e825865c 14-Nov-2008 Douglas Gregor <dgregor@apple.com> Add a new expression node, CXXOperatorCallExpr, which expresses a
function call created in response to the use of operator syntax that
resolves to an overloaded operator in C++, e.g., "str1 +
str2" that resolves to std::operator+(str1, str2)". We now build a
CXXOperatorCallExpr in C++ when we pick an overloaded operator. (But
only for binary operators, where we actually implement overloading)

I decided *not* to refactor the current CallExpr to make it abstract
(with FunctionCallExpr and CXXOperatorCallExpr as derived
classes). Doing so would allow us to make CXXOperatorCallExpr a little
bit smaller, at the cost of making the argument and callee accessors
virtual. We won't know if this is going to be a win until we can parse
lots of C++ code to determine how much memory we'll save by making
this change vs. the performance penalty due to the extra virtual
calls.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59306 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
cbcb4c2ba81d6b1c0dea9d8a362755607175873c 13-Nov-2008 Douglas Gregor <doug.gregor@gmail.com> Don't build identifiers for C++ constructors, destructors, or
conversion functions. Instead, we just use a placeholder identifier
for these (e.g., "<constructor>") and override NamedDecl::getName() to
provide a human-readable name.

This is one potential solution to the problem; another solution would
be to replace the use of IdentifierInfo* in NamedDecl with a different
class that deals with identifiers better. I'm also prototyping that to
see how it compares, but this commit is better than what we had
previously.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59193 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
7d7e6727a5de032c86dcb58ae734e7c1603c26e6 13-Nov-2008 Douglas Gregor <dgregor@apple.com> Don't build identifiers for C++ constructors, destructors, or
conversion functions. Instead, we just use a placeholder identifier
for these (e.g., "<constructor>") and override NamedDecl::getName() to
provide a human-readable name.

This is one potential solution to the problem; another solution would
be to replace the use of IdentifierInfo* in NamedDecl with a different
class that deals with identifiers better. I'm also prototyping that to
see how it compares, but this commit is better than what we had
previously.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59193 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
9c6210b86c24a722970568f19abb8250814e9b02 10-Nov-2008 Douglas Gregor <doug.gregor@gmail.com> Some cleanups to the declaration/checking of overloaded operators in C++. Thanks to Sebastian for the review

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58986 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
02bcd4cd1a19121da12884aa4943226f72a81e6c 10-Nov-2008 Douglas Gregor <dgregor@apple.com> Some cleanups to the declaration/checking of overloaded operators in C++. Thanks to Sebastian for the review

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58986 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
e60e5d3eb3d09bde80882f60abc69e28ced874c6 06-Nov-2008 Douglas Gregor <doug.gregor@gmail.com> Parsing, ASTs, and semantic analysis for the declaration of overloaded
operators in C++. Overloaded operators can be called directly via
their operator-function-ids, e.g., "operator+(foo, bar)", but we don't
yet implement the semantics of operator overloading to handle, e.g.,
"foo + bar".



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58817 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
1cd1b1e987f5e2f060d7972b13d83239b36d77d6 06-Nov-2008 Douglas Gregor <dgregor@apple.com> Parsing, ASTs, and semantic analysis for the declaration of overloaded
operators in C++. Overloaded operators can be called directly via
their operator-function-ids, e.g., "operator+(foo, bar)", but we don't
yet implement the semantics of operator overloading to handle, e.g.,
"foo + bar".



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58817 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
444bb8bc368f69b6240fb7c2bc6a5bdd289f8fec 06-Nov-2008 Douglas Gregor <doug.gregor@gmail.com> Reclaim some bits in IdentifierInfo, for later use as overloaded operator names.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58806 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
5142af38ed0dd2f592cbfa00fa6e2e14dd6cc516 06-Nov-2008 Douglas Gregor <dgregor@apple.com> Reclaim some bits in IdentifierInfo, for later use as overloaded operator names.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58806 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
7cca098a6ad3cbd4fd8bbc6cbb95b38cf7f41b84 02-Nov-2008 Eli Friedman <eli.friedman@gmail.com> More fallout from r58501: primary fix is some more corrections to make
the types for size_t and ptrdiff_t more accurate. I think all of these
are correct, but please compare the defines for __PTRDIFF_TYPE__ and
__SIZE_TYPE__ to gcc to double-check; this particularly applies to
those on BSD variants, since I'm not sure what they do here; I assume
here that they're the same as on Linux.

Fixes wchar_t to be "int", not "unsigned int" (which I think is
correct on everything but Windows).

Fixes ptrdiff_t to be "int" rather than "short" on PIC16; "short" is an
somewhat strange choice because it normally gets promoted, and it's not
consistent with the choice for size_t.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58556 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
f509d73ecf2c996e257f1a4e23c1282396b0a847 02-Nov-2008 Eli Friedman <eli.friedman@gmail.com> More fallout from r58501: primary fix is some more corrections to make
the types for size_t and ptrdiff_t more accurate. I think all of these
are correct, but please compare the defines for __PTRDIFF_TYPE__ and
__SIZE_TYPE__ to gcc to double-check; this particularly applies to
those on BSD variants, since I'm not sure what they do here; I assume
here that they're the same as on Linux.

Fixes wchar_t to be "int", not "unsigned int" (which I think is
correct on everything but Windows).

Fixes ptrdiff_t to be "int" rather than "short" on PIC16; "short" is an
somewhat strange choice because it normally gets promoted, and it's not
consistent with the choice for size_t.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58556 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
c0b56cdbaf788fd57ed0c18cf48f414b265e063f 31-Oct-2008 Anders Carlsson <andersca@mac.com> Fix a bug that was introduced in 58501. Ideally I think we should force all targets to set these values and not have defaults.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58511 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
6a3615c90e654fce94e9cf635fb4021d5c40743e 31-Oct-2008 Anders Carlsson <andersca@mac.com> Fix a bug that was introduced in 58501. Ideally I think we should force all targets to set these values and not have defaults.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58511 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
fa45143d9b070b5e0e76031dbba1fca99ecd06ab 31-Oct-2008 Sanjiv Gupta <sanjiv.gupta@microchip.com> Made the mechanism of defining preprocessor defs for maxint, ptrdiff_t, wchar
etc more generic. For some targets, long may not be equal to pointer size. For
example: PIC16 has int as i16, ptr as i16 but long as i32.

Also fixed a few build warnings in assert() functions in CFRefCount.cpp,
CGDecl.cpp, SemaDeclCXX.cpp and ParseDeclCXX.cpp.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58501 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
31fc07df7f0fc89ebf83ca05a20b29de45a7598d 31-Oct-2008 Sanjiv Gupta <sanjiv.gupta@microchip.com> Made the mechanism of defining preprocessor defs for maxint, ptrdiff_t, wchar
etc more generic. For some targets, long may not be equal to pointer size. For
example: PIC16 has int as i16, ptr as i16 but long as i32.

Also fixed a few build warnings in assert() functions in CFRefCount.cpp,
CGDecl.cpp, SemaDeclCXX.cpp and ParseDeclCXX.cpp.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58501 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
7a4864e85cd4f336dc2bd183fb058e44d304d628 27-Oct-2008 Chris Lattner <sabre@nondot.org> Rename Characteristic_t to CharacteristicKind



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58224 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
9d72851fec9e9c62570a027d42701562bbf29751 27-Oct-2008 Chris Lattner <sabre@nondot.org> Rename Characteristic_t to CharacteristicKind



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58224 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
a07708f0c359d13da434d87bc4d3927c1bc8d2a3 27-Oct-2008 Chris Lattner <sabre@nondot.org> Fix the definition of __builtin_va_list on PPC, which was set to the V4 ABI, not the
darwin or AIX abis. This fixes PR2904.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58222 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
d599850e9e4b30e3cb2384a447cab576742e4d0e 27-Oct-2008 Chris Lattner <sabre@nondot.org> Fix the definition of __builtin_va_list on PPC, which was set to the V4 ABI, not the
darwin or AIX abis. This fixes PR2904.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58222 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
c03d2ca68a37b5a33fffd5d1a30c28337bfce31f 26-Oct-2008 Oscar Fuentes <ofv@wanadoo.es> CMake: Builds and installs clang binary and libs (no docs yet). It
must be under the `tools' subdirectory of the LLVM *source* tree.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58180 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
d2f4e5ea6e980e48c292f5ca250e99377e3ee111 26-Oct-2008 Oscar Fuentes <ofv@wanadoo.es> CMake: Builds and installs clang binary and libs (no docs yet). It
must be under the `tools' subdirectory of the LLVM *source* tree.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58180 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
b90f3cde6b1458c40059568458b4f3fd54c1fc6e 17-Oct-2008 Chris Lattner <sabre@nondot.org> fix rdar://6288301: custom warnings don't respect -Werror.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57731 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
a1f23cc7f5dae8b71b8ee631994274609d35eb89 17-Oct-2008 Chris Lattner <sabre@nondot.org> fix rdar://6288301: custom warnings don't respect -Werror.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57731 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
98cb2a265cf7c9be2aa876b5d22386a1c7292e3d 16-Oct-2008 Chris Lattner <sabre@nondot.org> Add basic FreeBSD target support, patch by Roman Divacky!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57645 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
fd0269d1945669355d52809f6c2e6065f77ff488 16-Oct-2008 Chris Lattner <sabre@nondot.org> Add basic FreeBSD target support, patch by Roman Divacky!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57645 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
d2459f9d7d1f9ef540ddde2eef33af1f4de5936c 06-Oct-2008 Anders Carlsson <andersca@mac.com> Add 'x' constraint character.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57198 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
a7406d4f8ce586fcc98a2534b047b98bc8314c22 06-Oct-2008 Anders Carlsson <andersca@mac.com> Add 'x' constraint character.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57198 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
2285e62459b94899b59ecbecd98afdd5902cf0f5 06-Oct-2008 Anders Carlsson <andersca@mac.com> Add the 'y' assembler constraint.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57144 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
fce0934560b0e3cc55e95e54883c0f540c98cdb6 06-Oct-2008 Anders Carlsson <andersca@mac.com> Add the 'y' assembler constraint.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57144 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
bd00eb855a6080ff39b720d33bbb2db7ac08f58c 05-Oct-2008 Chris Lattner <sabre@nondot.org> miscellaneous cleanups


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57140 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
d29b6300a70576f5996f4137536e3ca1efa8eb83 05-Oct-2008 Chris Lattner <sabre@nondot.org> miscellaneous cleanups


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57140 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
3da35689ed4358d7a3ee5f8e6817e32ba0e48555 05-Oct-2008 Chris Lattner <sabre@nondot.org> move __FLT_EVAL_METHOD__, __FLT_RADIX__, and __DECIMAL_DIG__ into
target indep code.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57139 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
12f09260294175dc097b843d3d06d048b9cd64a3 05-Oct-2008 Chris Lattner <sabre@nondot.org> move __FLT_EVAL_METHOD__, __FLT_RADIX__, and __DECIMAL_DIG__ into
target indep code.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57139 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
b9ff151dfeeb262872e864a3f5ab6df62ae489ea 05-Oct-2008 Chris Lattner <sabre@nondot.org> it helps when I save the file before testing and committing.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57138 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
5db552d5c81033636f52dcfa5234dde247a4ca6f 05-Oct-2008 Chris Lattner <sabre@nondot.org> it helps when I save the file before testing and committing.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57138 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
5c8f64a7a902b1766be1bb0c457a1834c2debe63 05-Oct-2008 Chris Lattner <sabre@nondot.org> suck the rest of the FP macros out of the targets into the PP


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57137 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
e9863cab04789cd6d82453c42f6736624e0e739b 05-Oct-2008 Chris Lattner <sabre@nondot.org> suck the rest of the FP macros out of the targets into the PP


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57137 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
cbed299abea9255a4e44af5e39ab28c6ef0a33ad 05-Oct-2008 Chris Lattner <sabre@nondot.org> start moving fp macros over


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57134 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
2db78dd977fbba8fdf24cf8a4593436c031cfbcb 05-Oct-2008 Chris Lattner <sabre@nondot.org> start moving fp macros over


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57134 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1be8bb9daff92eb186b3236e14a172d86666f23a 05-Oct-2008 Chris Lattner <sabre@nondot.org> move a bunch more integer sizing out of target-specific code into
target indep code.

Note that this changes functionality on PIC16: it defines __INT_MAX__
correctly for it, and it changes sizeof(long) to 16-bits (to match
the size of pointer).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57132 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
0e5d4ef3155651af17a90fdc07d9f80b33935c0c 05-Oct-2008 Chris Lattner <sabre@nondot.org> move a bunch more integer sizing out of target-specific code into
target indep code.

Note that this changes functionality on PIC16: it defines __INT_MAX__
correctly for it, and it changes sizeof(long) to 16-bits (to match
the size of pointer).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57132 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
5edfe0151c889aab8979ae0efd4bbf155284ac5e 05-Oct-2008 Chris Lattner <sabre@nondot.org> eliminate __USER_LABEL_PREFIX__ from the Targets.cpp file, start moving
integer size #defines over to the Preprocessor.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57130 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
9b533164570a67c81ad49f3691f02608530a042e 05-Oct-2008 Chris Lattner <sabre@nondot.org> eliminate __USER_LABEL_PREFIX__ from the Targets.cpp file, start moving
integer size #defines over to the Preprocessor.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57130 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
3f6d8cf040f9186d8533561c80531b06eff146f6 05-Oct-2008 Chris Lattner <sabre@nondot.org> Implement PR2773, support for __USER_LABEL_PREFIX__


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57127 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
3fdf4678935b27c3d3fd4eb10bf9f5ab98dc0d99 05-Oct-2008 Chris Lattner <sabre@nondot.org> Implement PR2773, support for __USER_LABEL_PREFIX__


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57127 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
d376f6de98c5eef1991ea96949fa6776aa24b373 30-Sep-2008 Chris Lattner <sabre@nondot.org> Handle minor version numbers in __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
like "10.3.9"


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56873 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
079f2c467d4893a80bf0dc5344505725f42ceb87 30-Sep-2008 Chris Lattner <sabre@nondot.org> Handle minor version numbers in __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
like "10.3.9"


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56873 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
163819fab59758a98e110bd74101b083e1a84b20 30-Sep-2008 Nick Lewycky <nicholas@mxc.ca> Add missing include for use of atoi.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56836 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
86b76fcc78b98a5ff2029cc8e989a65442089cfc 30-Sep-2008 Nick Lewycky <nicholas@mxc.ca> Add missing include for use of atoi.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56836 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
c5dc8eb4a3b3d95e5e97db839801e5e5ec304f1b 30-Sep-2008 Chris Lattner <sabre@nondot.org> The definition of __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ follows
the target triple on darwin. For example i386-apple-darwin9 -> 1050 because
darwin9 is "10.5".


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56826 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
8b30c412198ed004d999f0047e48f87b95bd3205 30-Sep-2008 Chris Lattner <sabre@nondot.org> The definition of __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ follows
the target triple on darwin. For example i386-apple-darwin9 -> 1050 because
darwin9 is "10.5".


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56826 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
9b96b15d76376b08b33c5d5d6a3311cf49ad09c1 30-Sep-2008 Chris Lattner <sabre@nondot.org> define __PASCAL_STRINGS__ whenever -fpascal-strings is enabled.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56824 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
048dd943fc22a3ee60180d6992d744106c4c100a 30-Sep-2008 Chris Lattner <sabre@nondot.org> define __PASCAL_STRINGS__ whenever -fpascal-strings is enabled.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56824 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
bcd60db016cf82b2c61ca5942f31f9420df82423 30-Sep-2008 Chris Lattner <sabre@nondot.org> __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ is a darwin-specific #define



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56822 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
71af22964535d66b656b4c2de3551bf770e4164d 30-Sep-2008 Chris Lattner <sabre@nondot.org> __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ is a darwin-specific #define



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56822 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
82e289167dfb72d35a798bedad2f46eede0ef572 29-Sep-2008 Chris Lattner <sabre@nondot.org> Make some methods const, add some helpers to FullSourceLoc,
and add a dump method to FullSourceLoc! Patch by Nico Weber!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56806 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
5c38b6388dc44dcb8467a9e0f22d93db7221717e 29-Sep-2008 Chris Lattner <sabre@nondot.org> Make some methods const, add some helpers to FullSourceLoc,
and add a dump method to FullSourceLoc! Patch by Nico Weber!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56806 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
630347d66db04260aad03b144b140d59459a54b3 29-Sep-2008 Nico Weber <nicolasweber@gmx.de> whitespace and comment changes, to fix grammar and 80 col violations

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56776 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
48002c89578eaeb008a0bb5a10d8216e61906459 29-Sep-2008 Nico Weber <nicolasweber@gmx.de> whitespace and comment changes, to fix grammar and 80 col violations

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56776 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
6f04406bb068bcb54f2bb80778f2f2a633579d53 26-Sep-2008 Chris Lattner <sabre@nondot.org> clean up a bunch of fixme's I added, by moving
DirectoryLookup::DirType into SourceManager.h


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56692 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
0b9e736308af5397f558ffc8e780c438c2fdb563 26-Sep-2008 Chris Lattner <sabre@nondot.org> clean up a bunch of fixme's I added, by moving
DirectoryLookup::DirType into SourceManager.h


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56692 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
7257ce2761533f83b2afcf548b999f2bb290c734 26-Sep-2008 Chris Lattner <sabre@nondot.org> Fix the rest of rdar://6243860 hopefully. This requires changing FileIDInfo
to whether the fileid is a 'extern c system header' in addition to whether it
is a system header, most of this is spreading plumbing around. Once we have that,
PPLexerChange bases its "file enter/exit" notifications to PPCallbacks to
base the system header state on FileIDInfo instead of HeaderSearch. Finally,
in Preprocessor::HandleIncludeDirective, mirror logic in GCC: the system headerness
of a file being entered can be set due to the #includer or the #includee.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56688 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
721818304ac462d8c6ce05eecd02884033db78f1 26-Sep-2008 Chris Lattner <sabre@nondot.org> Fix the rest of rdar://6243860 hopefully. This requires changing FileIDInfo
to whether the fileid is a 'extern c system header' in addition to whether it
is a system header, most of this is spreading plumbing around. Once we have that,
PPLexerChange bases its "file enter/exit" notifications to PPCallbacks to
base the system header state on FileIDInfo instead of HeaderSearch. Finally,
in Preprocessor::HandleIncludeDirective, mirror logic in GCC: the system headerness
of a file being entered can be set due to the #includer or the #includee.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56688 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
e5a80f2987b8098ac71a87fa9f5d294d29361aa8 23-Sep-2008 Daniel Dunbar <daniel@zuster.org> Add x86_64 Linux target.
- PR2824


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56491 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
b55a42bf9b5310551319c0f752a5cfa90beca048 23-Sep-2008 Daniel Dunbar <daniel@zuster.org> Add x86_64 Linux target.
- PR2824


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56491 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
4dbd857bedd72b95c197d939df5d6fcf7bfd8072 12-Sep-2008 Daniel Dunbar <daniel@zuster.org> Add --suppress-system-warnings (on by default, use =0 to disable)
- For investigating warnings in system headers / builtins.
- Currently also enables the behavior that allows silent redefinition
of types in system headers. Conceptually these are separate but I
didn't feel it was worth two options (or changing LangOptions).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56163 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
2fe0997427d92388e66e7573f4b043e7ba285ef0 12-Sep-2008 Daniel Dunbar <daniel@zuster.org> Add --suppress-system-warnings (on by default, use =0 to disable)
- For investigating warnings in system headers / builtins.
- Currently also enables the behavior that allows silent redefinition
of types in system headers. Conceptually these are separate but I
didn't feel it was worth two options (or changing LangOptions).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56163 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
ab5f114f9338c283d95c9de004cee014176d42e6 11-Sep-2008 Douglas Gregor <doug.gregor@gmail.com> bool is not an extension in C++

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56103 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
7de3d7940d9904b1b9fff81ecfe3fe132a71a6ef 11-Sep-2008 Douglas Gregor <dgregor@apple.com> bool is not an extension in C++

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56103 91177308-0d34-0410-b5e6-96231b3b80d8
dentifierTable.cpp
762fecfd5a2597d2d03222606eafc73ae1c269f1 06-Sep-2008 Eli Friedman <eli.friedman@gmail.com> Per PR2773, define __USER_LABEL_PREFIX__ for x86-32 Linux and Windows.

If you're on some other platform, the correct definition for this macro
would be appreciated; to find the correct definition, just run the
following command:

echo | gcc -dM -E - | grep USER_LABEL_PREFIX



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55869 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
c0c0f70cf196513eadc010bf79d1d3cd00750d85 06-Sep-2008 Eli Friedman <eli.friedman@gmail.com> Per PR2773, define __USER_LABEL_PREFIX__ for x86-32 Linux and Windows.

If you're on some other platform, the correct definition for this macro
would be appreciated; to find the correct definition, just run the
following command:

echo | gcc -dM -E - | grep USER_LABEL_PREFIX



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55869 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
157e1e6621865236a22bea1cfacae2b694abd083 25-Aug-2008 Daniel Dunbar <daniel@zuster.org> Stop asserting in TargetInfo::validateInputConstraint
- Sema gives a perfectively nice error message on invalid constraints.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55310 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
302684c5e2242c350efb3a638cd0ed1de21705e1 25-Aug-2008 Daniel Dunbar <daniel@zuster.org> Stop asserting in TargetInfo::validateInputConstraint
- Sema gives a perfectively nice error message on invalid constraints.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55310 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
d4faca4a39392769b2109a2b7e76c031b573086b 23-Aug-2008 Chris Lattner <sabre@nondot.org> Add dragonfly target support, patch by Sascha Wildner



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55241 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
eac7aee3a2e8ce74274ecf8be7ab9cf04cebdf9b 23-Aug-2008 Chris Lattner <sabre@nondot.org> Add dragonfly target support, patch by Sascha Wildner



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55241 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
3454295c2de47811a2b7fae8551c11bbd8ef2aff 23-Aug-2008 Daniel Dunbar <daniel@zuster.org> Add TargetInfo::useNeXTRuntimeAsDefault
- Used to autoselect runtime when neither -fnext-runtime nor
-fgnu-runtime is specified.
- Default impl is false, all darwin targets set it to true.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55231 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
dcb4a1a6dd55fdf6c073d2761096f42e26be105a 23-Aug-2008 Daniel Dunbar <daniel@zuster.org> Add TargetInfo::useNeXTRuntimeAsDefault
- Used to autoselect runtime when neither -fnext-runtime nor
-fgnu-runtime is specified.
- Default impl is false, all darwin targets set it to true.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55231 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f90d2a60d81b9b51638bb02d31ae8f7becc4369b 21-Aug-2008 Eli Friedman <eli.friedman@gmail.com> Remove duplicate define from Windows-x86 target.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55101 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1e1bfd20bdb9875a1d8ae5444410c48d2cd6ea29 21-Aug-2008 Eli Friedman <eli.friedman@gmail.com> Remove duplicate define from Windows-x86 target.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55101 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
23cb791936dccc9b7718eee5c6f6233d4d7ee46c 21-Aug-2008 Eli Friedman <eli.friedman@gmail.com> Initial implementation of Windows x86 target; at the moment, the only
difference from generic x86 is the defines. The rest is non-trivial to
implement.

I'm not planning on adding any more targets myself; if there are any
targets anyone is currently using that are missing, feel free to add
them, or ask me to add them.

This concludes the work I'm planning for the TargetInfo
implementations at the moment; all the other issues with TargetInfo require
some API changes, and I haven't really thought it through. Some of the
remaining issues: allowing targets to define size_t and wchar_t properly,
adding some sort of __builtin_type_info intrinsic so we can finish clang's
limits.h and float.h and get rid of a massive number of macro
definitions, allowing target-specific command-line options, allowing
target-specific defaults for certain command-line options like
-fms-extensions, exposing vector alignment outside of the description
string, exposing endianness outside of the description string, allowing
targets to expose special bit-field layout requirements, exposing some
sort of custom hook for call generation in CodeGen, and adding CPU
selection to control defines like __SSE__.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55098 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
29a305067d2ff1213a98ddff11ba99e28760ef74 21-Aug-2008 Eli Friedman <eli.friedman@gmail.com> Initial implementation of Windows x86 target; at the moment, the only
difference from generic x86 is the defines. The rest is non-trivial to
implement.

I'm not planning on adding any more targets myself; if there are any
targets anyone is currently using that are missing, feel free to add
them, or ask me to add them.

This concludes the work I'm planning for the TargetInfo
implementations at the moment; all the other issues with TargetInfo require
some API changes, and I haven't really thought it through. Some of the
remaining issues: allowing targets to define size_t and wchar_t properly,
adding some sort of __builtin_type_info intrinsic so we can finish clang's
limits.h and float.h and get rid of a massive number of macro
definitions, allowing target-specific command-line options, allowing
target-specific defaults for certain command-line options like
-fms-extensions, exposing vector alignment outside of the description
string, exposing endianness outside of the description string, allowing
targets to expose special bit-field layout requirements, exposing some
sort of custom hook for call generation in CodeGen, and adding CPU
selection to control defines like __SSE__.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55098 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
5fb0a02846ed1e40094703179c0f773b4081b030 21-Aug-2008 Eli Friedman <eli.friedman@gmail.com> Add Linux x86-32 target.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55095 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
0d4047b9a0e6c3b4bbe3df53b2dd59dfb3a2170c 21-Aug-2008 Eli Friedman <eli.friedman@gmail.com> Add Linux x86-32 target.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55095 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
2b16165d8ee6a02ede96ae74a46075a1801e68d7 21-Aug-2008 Eli Friedman <eli.friedman@gmail.com> First cut at OS detection, taking advantage of the new generic targets.
This approach allows adding OS-specific targets/defines/etc. without
completely breaking unknown subtargets. No new subtargets yet, although
I plan to add x86-Linux soon. Others can add targets that they use as
needed; adding a new subtarget takes very little code.

Also does some fixups for description strings; a lot of them were
unspecified. I think all the ones I added are correct, but
they're unverified; corrections are welcome.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55091 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
ed855cbbdfa53215c23b49064bb79579a1840fe1 21-Aug-2008 Eli Friedman <eli.friedman@gmail.com> First cut at OS detection, taking advantage of the new generic targets.
This approach allows adding OS-specific targets/defines/etc. without
completely breaking unknown subtargets. No new subtargets yet, although
I plan to add x86-Linux soon. Others can add targets that they use as
needed; adding a new subtarget takes very little code.

Also does some fixups for description strings; a lot of them were
unspecified. I think all the ones I added are correct, but
they're unverified; corrections are welcome.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55091 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
fd5a4122b358348167894347f68214b0210004a0 21-Aug-2008 Eli Friedman <eli.friedman@gmail.com> Class reorg for PPC; shouldn't be any visible changes unless I messed
up somehow.

This concludes the series of reorg patches for the target
implementations.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55086 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
e4277985819ef48ad74e37b1770af61af3761482 21-Aug-2008 Eli Friedman <eli.friedman@gmail.com> Class reorg for PPC; shouldn't be any visible changes unless I messed
up somehow.

This concludes the series of reorg patches for the target
implementations.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55086 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
be727fe1eb85e76bdfc431131d7eb091cceab284 20-Aug-2008 Eli Friedman <eli.friedman@gmail.com> Class reorg for ARM. Shouldn't be any visible changes.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55042 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
a9f5496df43d0fcafc9c1e16a6ffba93cb00fe11 20-Aug-2008 Eli Friedman <eli.friedman@gmail.com> Class reorg for ARM. Shouldn't be any visible changes.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55042 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
ff158ddbc99a1dec461bcdd2c673058b5386889c 20-Aug-2008 Eli Friedman <eli.friedman@gmail.com> Class hierarchy reorg for Sparc architecture. While I was there, I
cleaned it up a bit, including fixing the definition of va_list; this
shouldn't break anything, but anyone using Sparc should watch for
regressions.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55041 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
01b866808f4be5eb6bd437387b5396c0cdee5495 20-Aug-2008 Eli Friedman <eli.friedman@gmail.com> Class hierarchy reorg for Sparc architecture. While I was there, I
cleaned it up a bit, including fixing the definition of va_list; this
shouldn't break anything, but anyone using Sparc should watch for
regressions.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55041 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
872996cafdd70080addbf012736fa5cb1fcd0cd8 20-Aug-2008 Eli Friedman <eli.friedman@gmail.com> Reorganize the class hierarchy for x86 targets; shouldn't have any
visible effects, but this will significantly reduce the amount of
boilerplate code necessary to add subtargets.

If this looks okay, I'll do the rest of the processors (PPC, Sparc, ARM)
soon.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55036 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
618234a7481ed8da28dcdee0f997beb6e8252204 20-Aug-2008 Eli Friedman <eli.friedman@gmail.com> Reorganize the class hierarchy for x86 targets; shouldn't have any
visible effects, but this will significantly reduce the amount of
boilerplate code necessary to add subtargets.

If this looks okay, I'll do the rest of the processors (PPC, Sparc, ARM)
soon.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55036 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
c4d84c5696346acbd6392da82ea282eb1469ac0f 18-Aug-2008 Chris Lattner <sabre@nondot.org> Fix PR2627, support for Q constraint.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54943 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1e2118954730cab40675d510a29400bea0d19d84 18-Aug-2008 Chris Lattner <sabre@nondot.org> Fix PR2627, support for Q constraint.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54943 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
ebd8f0f733941871aab785716aab27cb97fdcb38 18-Aug-2008 Sanjiv Gupta <sanjiv.gupta@microchip.com> Allow targets to override description string.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54914 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
364af81157a81cf34bb058a7d5b0185020e5164b 18-Aug-2008 Sanjiv Gupta <sanjiv.gupta@microchip.com> Allow targets to override description string.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54914 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
428e67629c95d368a6a9ab600be990e9fd62824b 12-Aug-2008 Daniel Dunbar <daniel@zuster.org> Move some ObjC preprocessor definitions into
InitializePredefinedMacros().
- Also now properly wired to -fobjc-gc, -fnext-runtime.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54661 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
fba5cb12adbe95d79855e91db018b863ce48387e 12-Aug-2008 Daniel Dunbar <daniel@zuster.org> Move some ObjC preprocessor definitions into
InitializePredefinedMacros().
- Also now properly wired to -fobjc-gc, -fnext-runtime.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54661 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
1be1df38bc96c806d045260cd25e96f09b041c51 11-Aug-2008 Daniel Dunbar <daniel@zuster.org> Add LangOptions::NeXTRuntime.
- Wired to -fnext-runtime and -fgnu-runtime options.
- Defaults to GNU, no autoselection for NeXT.

Emit NeXT OBJC_IMAGE_INFO marker.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54651 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f77ac86f4eca528a04b817d7ad7f045a47d52712 11-Aug-2008 Daniel Dunbar <daniel@zuster.org> Add LangOptions::NeXTRuntime.
- Wired to -fnext-runtime and -fgnu-runtime options.
- Defaults to GNU, no autoselection for NeXT.

Emit NeXT OBJC_IMAGE_INFO marker.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54651 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
e0ad215b709fba79b3a1ead9af31a6f8bd3ee77a 11-Aug-2008 Daniel Dunbar <daniel@zuster.org> More #include cleaning
- Kill unnecessary #includes in .cpp files. This is an automatic
sweep so some things removed are actually used, but happen to be
included by a previous header. I tried to get rid of the obvious
examples and this was the easiest way to trim the #includes in one
fell swoop.
- We now return to regularly scheduled development.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54632 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
acc5f3e42334525bf28c86471551f83dfce222d5 11-Aug-2008 Daniel Dunbar <daniel@zuster.org> More #include cleaning
- Kill unnecessary #includes in .cpp files. This is an automatic
sweep so some things removed are actually used, but happen to be
included by a previous header. I tried to get rid of the obvious
examples and this was the easiest way to trim the #includes in one
fell swoop.
- We now return to regularly scheduled development.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54632 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
d2a6ac9cd5cc5153ce9a4385a1f979714091fc71 10-Aug-2008 Nico Weber <nicolasweber@gmx.de> * Remove isInSystemHeader() from DiagClient, move it to SourceManager
* Move FormatError() from TextDiagnostic up to DiagClient, remove now
empty class TextDiagnostic
* Make DiagClient optional for Diagnostic

This fixes the following problems:

* -html-diags (and probably others) does now output the same set of
warnings as console clang does
* nothing crashes if one forgets to call setHeaderSearch() on
TextDiagnostic
* some code duplication is removed




git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54620 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
ourceLocation.cpp
ourceManager.cpp
7bfaaaecb3113f955db31e8d8a51acffd1bc0c27 10-Aug-2008 Nico Weber <nicolasweber@gmx.de> * Remove isInSystemHeader() from DiagClient, move it to SourceManager
* Move FormatError() from TextDiagnostic up to DiagClient, remove now
empty class TextDiagnostic
* Make DiagClient optional for Diagnostic

This fixes the following problems:

* -html-diags (and probably others) does now output the same set of
warnings as console clang does
* nothing crashes if one forgets to call setHeaderSearch() on
TextDiagnostic
* some code duplication is removed




git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54620 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
ourceLocation.cpp
ourceManager.cpp
5c3417333c5bcfba7522919f80f57277c28e3dfd 07-Aug-2008 Ted Kremenek <kremenek@apple.com> Fix --html-diags in driver by delaying the construction of an HTMLDiagnosticClient until after we have created the Preprocessor object.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54472 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
b4398aa27da4d6919c3ae448d1ae66ba6cafc048 07-Aug-2008 Ted Kremenek <kremenek@apple.com> Fix --html-diags in driver by delaying the construction of an HTMLDiagnosticClient until after we have created the Preprocessor object.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54472 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
103baef5578a53a39ed11d8ef86c937f258d7dcb 05-Aug-2008 Daniel Dunbar <daniel@zuster.org> Add EXTWARN Diagnostic class.
- Like EXTENSION but always generates a warning (even without
-pedantic).
- Updated ptr -> int, int -> ptr, and incompatible cast warnings to
be EXTWARN.
- Other EXTENSION level diagnostics should be audited for upgrade.
- Updated several test cases to fix code which produced unanticipated
warnings.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54335 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
4489fe10fa073eb326e2c8906db170f009050911 05-Aug-2008 Daniel Dunbar <daniel@zuster.org> Add EXTWARN Diagnostic class.
- Like EXTENSION but always generates a warning (even without
-pedantic).
- Updated ptr -> int, int -> ptr, and incompatible cast warnings to
be EXTWARN.
- Other EXTENSION level diagnostics should be audited for upgrade.
- Updated several test cases to fix code which produced unanticipated
warnings.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54335 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
82b2628ab6e3a178edde5f2aaac8a3f7400315ce 22-Jul-2008 Anders Carlsson <andersca@mac.com> Always define __SIZE_TYPE__ as long unsigned int.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53922 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
8b7c9fb2efc4c72c24989c211cf8e877c2a2b3a1 22-Jul-2008 Anders Carlsson <andersca@mac.com> Always define __SIZE_TYPE__ as long unsigned int.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53922 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
fd7bf3a436a4bc7ea6c688ac1d8145871a43836f 07-Jul-2008 Nuno Lopes <nunoplopes@sapo.pt> add x86 EDI register alias

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53170 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
9d294801746366014e77f5d811e026bf59d4a8b1 07-Jul-2008 Nuno Lopes <nunoplopes@sapo.pt> add x86 EDI register alias

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53170 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
e531db8b474daf0b1d5e18dc4dceff0e8d035a76 05-Jul-2008 Nuno Lopes <nunoplopes@sapo.pt> move the linux predefined macro definition to the TargetInfo, where it really belongs

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53149 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
551d5e9811c0e68496bb2842163c6d99138d6ef9 05-Jul-2008 Nuno Lopes <nunoplopes@sapo.pt> move the linux predefined macro definition to the TargetInfo, where it really belongs

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53149 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
4a712856198f6e5264fff4f221cd2178a71ff539 04-Jun-2008 Eli Friedman <eli.friedman@gmail.com> Make the width and alignment for long double consistent with the
hardcoded data layout in getTargetDescription. Hopefully fixes a test
failure.

Of course, this should be fixed properly, but that's a bigger fix.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51948 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
5aa4fd65efe3bda6080009fffba747450f34536e 04-Jun-2008 Eli Friedman <eli.friedman@gmail.com> Make the width and alignment for long double consistent with the
hardcoded data layout in getTargetDescription. Hopefully fixes a test
failure.

Of course, this should be fixed properly, but that's a bigger fix.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51948 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
3a22b7c929a8f727fcee2b49a0a34616fdfabe6e 29-May-2008 Chris Lattner <sabre@nondot.org> Implement support for -w, which silences all warnings. PR2384.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51683 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
5b4681c8ef65808ec4d72ab6081efd24d53d4969 29-May-2008 Chris Lattner <sabre@nondot.org> Implement support for -w, which silences all warnings. PR2384.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51683 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
1dee5c5850b0d07e7804bd629251f28ce05bd5c4 25-May-2008 Eli Friedman <eli.friedman@gmail.com> Make sure to define __sparc__ on Solaris; this should "fix"
test/Codegen/mandel.c on Solaris. :-)



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51554 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
bf0c9bdd492662e637b6b8eef0ccc23d211ad883 25-May-2008 Eli Friedman <eli.friedman@gmail.com> Make sure to define __sparc__ on Solaris; this should "fix"
test/Codegen/mandel.c on Solaris. :-)



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51554 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
d401189a004e9309d9ae1068ff09b34c085bccaf 20-May-2008 Eli Friedman <eli.friedman@gmail.com> Missed an include.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51321 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
2553126e29fbb846e71bfbfc93e5c63f2f05b0c6 20-May-2008 Eli Friedman <eli.friedman@gmail.com> Missed an include.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51321 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
2fde2a539de69c16c8f2e2b7cdef9984883d2301 20-May-2008 Eli Friedman <eli.friedman@gmail.com> Minor correction for PPC targets.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51320 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
d37f0b82f1d86f79bb4be3afae24e5b792f2e074 20-May-2008 Eli Friedman <eli.friedman@gmail.com> Minor correction for PPC targets.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51320 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
0b7b1cb2169742c4027d2b1db74788fa55f5da97 20-May-2008 Eli Friedman <eli.friedman@gmail.com> Some small changes to make the target info a bit more accurate.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51319 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
61538a7d1336f3ef3cb81e09f11a1cbb282bcf81 20-May-2008 Eli Friedman <eli.friedman@gmail.com> Some small changes to make the target info a bit more accurate.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51319 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
e5fde95f3d9eb09104838f7acd0ec58ecfcf6f9f 09-May-2008 Chris Lattner <sabre@nondot.org> set long/pointers to 64-bits on ppc64/x86-64


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50891 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
f291b10fa99ed1c82256b7600911c09e82021205 09-May-2008 Chris Lattner <sabre@nondot.org> set long/pointers to 64-bits on ppc64/x86-64


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50891 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
727b3c4572f4107706b7530dbc1c3be668e42717 09-May-2008 Chris Lattner <sabre@nondot.org> parameterize pointer size/align better without doing virtual method calls in normal case.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50890 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
927686fe8c968ca786fa44d2353eebf59c4f5b8a 09-May-2008 Chris Lattner <sabre@nondot.org> parameterize pointer size/align better without doing virtual method calls in normal case.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50890 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
481dcf2bfc797afdb119f76afa88941574f78f94 09-May-2008 Chris Lattner <sabre@nondot.org> parameterize long long.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50887 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
ec10f5886526124ba733fbd0ef8665d576285daa 09-May-2008 Chris Lattner <sabre@nondot.org> parameterize long long.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50887 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
e0efe2ef8f5758fe7fad7b005b4f69906b6c0e34 09-May-2008 Chris Lattner <sabre@nondot.org> correctly parameterize long, patch by Nate.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50886 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
8059e997ee05e4aa87f7e21fed630429a140ee53 09-May-2008 Chris Lattner <sabre@nondot.org> correctly parameterize long, patch by Nate.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50886 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
85970f3f71b583df8ad9cbb66bc117728f797d7c 08-May-2008 Chris Lattner <sabre@nondot.org> Add basic support for the pic-* target triples and add support for
targets that do not support recursion (and thus codegen stack variables
as globals).

Patch contributed by Alireza Moshtaghi!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50844 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
2621fd1d6d3c5eadcae246859f62738645df7540 08-May-2008 Chris Lattner <sabre@nondot.org> Add basic support for the pic-* target triples and add support for
targets that do not support recursion (and thus codegen stack variables
as globals).

Patch contributed by Alireza Moshtaghi!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50844 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
argets.cpp
2658c4a2dc159938dede447db2c858657055e17e 29-Apr-2008 Ted Kremenek <kremenek@apple.com> Add -fobjc-gc and -fobjc-gc-only options to the driver.
Add corresponding enum in LangOptions.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50387 91177308-0d34-0410-b5e6-96231b3b80d8
angOptions.cpp
01d9dbf4ae627e2ba42fc23485789a33fa296516 29-Apr-2008 Ted Kremenek <kremenek@apple.com> Add -fobjc-gc and -fobjc-gc-only options to the driver.
Add corresponding enum in LangOptions.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50387 91177308-0d34-0410-b5e6-96231b3b80d8
angOptions.cpp
d229d965d39c529a4dd3ac820824ec4309b86a44 24-Apr-2008 Ted Kremenek <kremenek@apple.com> Have ValidateOutputConstraint return false instead of firing an assertion
when processing a constraint we don't understand. This allows the frontend
to gracefully fail.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50213 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
5ab201a324b2153ce151904d397c05fab798e0bc 24-Apr-2008 Ted Kremenek <kremenek@apple.com> Have ValidateOutputConstraint return false instead of firing an assertion
when processing a constraint we don't understand. This allows the frontend
to gracefully fail.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50213 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
222823af47fae8933a3896fca70d780df8f3ea4f 22-Apr-2008 Nate Begeman <natebegeman@mac.com> Add some basic ARM asm constraints


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50085 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
ad487f4ef2968c5a11bb729e65fda2f2e4b155c8 22-Apr-2008 Nate Begeman <natebegeman@mac.com> Add some basic ARM asm constraints


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50085 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
b644405776f5d8556ed8d3163e20c2e31b78438d 21-Apr-2008 Chris Lattner <sabre@nondot.org> Fix pasto, thanks to Anders for pointing this out.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50055 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
d0c33d3527fff8315accb7e54b1bc82d593973cb 21-Apr-2008 Chris Lattner <sabre@nondot.org> Fix pasto, thanks to Anders for pointing this out.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50055 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
9fd736147309aa7ba1f58ff010f506affe56c5cd 21-Apr-2008 Chris Lattner <sabre@nondot.org> add arm support


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50049 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
393ff04a07d7fd9b212b2cbe398435813c73c9a1 21-Apr-2008 Chris Lattner <sabre@nondot.org> add arm support


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50049 91177308-0d34-0410-b5e6-96231b3b80d8
argets.cpp
d5e35f80ba99033e36b463069fd22cab6ee65d27 18-Apr-2008 Nate Begeman <natebegeman@mac.com> Tabs -> spaces


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49909 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
3d292065d80fd81c327ad8452625cb4e5785913c 18-Apr-2008 Nate Begeman <natebegeman@mac.com> Tabs -> spaces


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49909 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
6017f7f4a37f3d2cb77343086083c9eb787f2788 18-Apr-2008 Nate Begeman <natebegeman@mac.com> Initialize default double width and alignment


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49899 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
d5e2d87d53bb578a9f99da9aa116b73ade0d31eb 18-Apr-2008 Nate Begeman <natebegeman@mac.com> Initialize default double width and alignment


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49899 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
265a3a0fb8d2e2be2f9f81fcb6905b1df00bae18 14-Apr-2008 Ted Kremenek <kremenek@apple.com> Fix regression in Diagnostic that caused it to not register the number
of errors.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49686 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
d0734e56d6794181e672d705ddb6e5e1f24af4ed 14-Apr-2008 Ted Kremenek <kremenek@apple.com> Fix regression in Diagnostic that caused it to not register the number
of errors.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49686 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
81019d79e21f8606b3c59d0d82db6df9548b0a89 14-Apr-2008 Ted Kremenek <kremenek@apple.com> Added "getCanonicalID()", "isFromSameFile", and "isFromMainFile" to compare
the files of different SourceLocations. These methods correctly handle the
case where a file may have multiple FileIDs due to it being large enough
to be spread across several chunks.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49682 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
9fd87b1db485e2f31d0e5687f9168b370d546847 14-Apr-2008 Ted Kremenek <kremenek@apple.com> Added "getCanonicalID()", "isFromSameFile", and "isFromMainFile" to compare
the files of different SourceLocations. These methods correctly handle the
case where a file may have multiple FileIDs due to it being large enough
to be spread across several chunks.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49682 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
051fe9dbf345b986c266cda1a624662de06500f2 14-Apr-2008 Ted Kremenek <kremenek@apple.com> Only increment the number of diagnostics when the DiagnosticClient used
is the one attached to the Diagnostic object.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49677 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
06bdb3a4fa8e84721b57a86f73aa3224f5367d58 14-Apr-2008 Ted Kremenek <kremenek@apple.com> Only increment the number of diagnostics when the DiagnosticClient used
is the one attached to the Diagnostic object.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49677 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
5c81ea0a41fbfff66ed47590867251267ab1e190 06-Apr-2008 Chris Lattner <sabre@nondot.org> add a missing #include


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49256 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
5483bdf386ae000ca9c0761481850b005077f4cd 06-Apr-2008 Chris Lattner <sabre@nondot.org> add a missing #include


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49256 91177308-0d34-0410-b5e6-96231b3b80d8
argetInfo.cpp
54042a51eb806d310df0fc48433ca6013e345fbc 03-Apr-2008 Ted Kremenek <kremenek@apple.com> Added "getLogicalLineNumber" and "getLogicalColumnNumber" to FullSourceLoc.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49177 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
1758b07ef7c554b06c48a43df2edaba85e918031 03-Apr-2008 Ted Kremenek <kremenek@apple.com> Added "getLogicalLineNumber" and "getLogicalColumnNumber" to FullSourceLoc.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49177 91177308-0d34-0410-b5e6-96231b3b80d8
ourceLocation.cpp
d960610330ac3824be0fa6b38713d46937934f0a 01-Apr-2008 Chris Lattner <sabre@nondot.org> Update to match simplified llvm MemoryBuffer interfaces for files.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49042 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
35de512b9cb22a234a771b417507f71a2bbb5a94 01-Apr-2008 Chris Lattner <sabre@nondot.org> Update to match simplified llvm MemoryBuffer interfaces for files.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49042 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
2ba23586fae7fe7e97687f776c073db557948f71 01-Apr-2008 Chris Lattner <sabre@nondot.org> prune dead #includes


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49033 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
be2ab45def5c856c32cb15a2a67254e15b40b0bb 01-Apr-2008 Chris Lattner <sabre@nondot.org> prune dead #includes


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49033 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
56f330ddf7fc28a8849dd6d88c13590aeff26d96 01-Apr-2008 Chris Lattner <sabre@nondot.org> MemoryBuffer::getFile got smarter, obviating the need for readfilefast.
The new MemoryBuffer doesn't "leak" file descriptors and handles the
small file case efficiently.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49032 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
3c1f7b615c03e55f8aaee14a5793c917c050b373 01-Apr-2008 Chris Lattner <sabre@nondot.org> MemoryBuffer::getFile got smarter, obviating the need for readfilefast.
The new MemoryBuffer doesn't "leak" file descriptors and handles the
small file case efficiently.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49032 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
1377e5f7517af2716ef213c1c4cecd463de05060 31-Mar-2008 Steve Naroff <snaroff@apple.com> Hack ReadFileFast() to raise the threshold of memory mapped files (from 4->12 pages).

This is a temporary solution to avoid running out of file descriptors (which defaults to 256).

Need to benchmark to understand the speed benefit. If the benefit is small, the simple solution is to avoid memory mapping files. If the benefit is significant, more thought is necessary.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48991 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
ff721524ec582abe6667add99c360e5ec247c736 31-Mar-2008 Steve Naroff <snaroff@apple.com> Hack ReadFileFast() to raise the threshold of memory mapped files (from 4->12 pages).

This is a temporary solution to avoid running out of file descriptors (which defaults to 256).

Need to benchmark to understand the speed benefit. If the benefit is small, the simple solution is to avoid memory mapping files. If the benefit is significant, more thought is necessary.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48991 91177308-0d34-0410-b5e6-96231b3b80d8
ourceManager.cpp
7877f2b742d4debac40f73be39d6d4b0f35b8a9e 31-Mar-2008 Ted Kremenek <kremenek@apple.com> Added variation of the "Report" method in the class Diagnostic that takes
an optional DiagnosticClient argument that differs from the client stored
internally in the Diagnostic object.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48986 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
615f5177095e62b36bf88f1b1b7b644295e4097b 31-Mar-2008 Ted Kremenek <kremenek@apple.com> Added variation of the "Report" method in the class Diagnostic that takes
an optional DiagnosticClient argument that differs from the client stored
internally in the Diagnostic object.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48986 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
be1a7a0f1f78bf5f919ff1e4b4ae6e8649255f26 16-Mar-2008 Chris Lattner <sabre@nondot.org> Make a major restructuring of the clang tree: introduce a top-level
lib dir and move all the libraries into it. This follows the main
llvm tree, and allows the libraries to be built in parallel. The
top level now enforces that all the libs are built before Driver,
but we don't care what order the libs are built in. This speeds
up parallel builds, particularly incremental ones.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48402 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
ileManager.cpp
dentifierTable.cpp
angOptions.cpp
akefile
ourceLocation.cpp
ourceManager.cpp
argetInfo.cpp
argets.cpp
okenKinds.cpp
bda0b626e74513950405c27525af87e214e605e2 16-Mar-2008 Chris Lattner <sabre@nondot.org> Make a major restructuring of the clang tree: introduce a top-level
lib dir and move all the libraries into it. This follows the main
llvm tree, and allows the libraries to be built in parallel. The
top level now enforces that all the libs are built before Driver,
but we don't care what order the libs are built in. This speeds
up parallel builds, particularly incremental ones.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48402 91177308-0d34-0410-b5e6-96231b3b80d8
iagnostic.cpp
ileManager.cpp
dentifierTable.cpp
angOptions.cpp
akefile
ourceLocation.cpp
ourceManager.cpp
argetInfo.cpp
argets.cpp
okenKinds.cpp