Граф коммитов

1222 Коммитов

Автор SHA1 Сообщение Дата
Eli Friedman 6902e4146d 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
2012-11-27 02:58:24 +00:00
Eli Friedman f582499870 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
2012-11-26 21:57:28 +00:00
Benjamin Kramer 7baa711e61 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
2012-11-17 17:30:55 +00:00
Eli Friedman faf3538605 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
2012-11-17 01:43:10 +00:00
Eli Friedman 612db2aa10 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
2012-11-17 01:16:19 +00:00
Douglas Gregor 49a87549f4 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
2012-11-16 04:24:59 +00:00
Richard Smith 62221b17c9 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
2012-11-14 23:55:25 +00:00
Eric Christopher 825d386c1d 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
2012-11-14 22:08:59 +00:00
Bill Wendling f634bdfbf4 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
2012-11-12 18:52:32 +00:00
Bill Wendling 68fd608c2c 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
2012-11-12 06:42:51 +00:00
Nico Weber 18f236886b Remove unneeded includes from IdentifierTable
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167694 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-11 21:39:39 +00:00
Michael Liao 463eb89d5e 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
2012-11-10 05:17:46 +00:00
Argyrios Kyrtzidis 9410928fb8 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
2012-11-09 19:40:48 +00:00
Benjamin Kramer ef7bceadf4 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
2012-11-08 12:59:15 +00:00
Daniel Dunbar 6a1f49423b Basic: Windows doesn't define S_IFIFO.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167468 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-06 17:08:24 +00:00
Daniel Dunbar ce36ecd5a5 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
2012-11-05 22:53:33 +00:00
Richard Smith ca1b62a33c 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
2012-11-05 21:48:12 +00:00
Seth Cantrell 31ba273ef8 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
2012-10-30 23:50:26 +00:00
Bill Schmidt dbaf4bc586 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
2012-10-29 14:59:24 +00:00
Ulrich Weigand e6b3dbae38 Handle '*' and '#' asm constraint modifiers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166924 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-29 12:20:54 +00:00
Bill Wendling 50d46caf00 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
2012-10-25 23:28:48 +00:00
David Tweed b16abb1bd8 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
2012-10-25 13:33:01 +00:00
Bill Wendling c6cd9afd15 Revert r166647 to rethink the patch...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166655 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-25 00:32:44 +00:00
Bill Wendling a0b9ce0388 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
2012-10-25 00:05:55 +00:00
Douglas Gregor 02c23ebf41 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
2012-10-23 22:26:28 +00:00
Daniel Dunbar 4d3ee9bc48 Fix pre-commit refacto failure.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166431 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-22 18:56:43 +00:00
Daniel Dunbar 849289e531 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
2012-10-22 18:51:13 +00:00
Argyrios Kyrtzidis 0872a06d1e 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
2012-10-20 00:51:32 +00:00
Craig Topper d9cad403c0 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
2012-10-19 04:40:38 +00:00
Douglas Gregor 57016dda61 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
2012-10-16 23:40:58 +00:00
Derek Schuff 263366f924 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
2012-10-16 22:30:41 +00:00
Douglas Gregor 9a022bb007 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
2012-10-15 16:45:32 +00:00
Douglas Gregor 2b49d1f0ad 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
2012-10-15 06:28:11 +00:00
Eli Friedman 6505a29cfd 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
2012-10-12 23:32:00 +00:00
Ted Kremenek 186ec9c2e6 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
2012-10-12 22:56:33 +00:00
Derek Schuff 7da46f949f 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
2012-10-11 16:55:58 +00:00
Derek Schuff babaf31d40 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
2012-10-11 15:52:22 +00:00
Manman Ren 146e5a4a78 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
2012-10-11 00:59:55 +00:00
Logan Chien eae5a820bc 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
2012-10-10 06:56:20 +00:00
Aaron Ballman 82bfa19fe3 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
2012-10-02 14:26:08 +00:00
Bob Wilson cfaab00963 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
2012-09-29 23:52:52 +00:00
Bob Wilson 336bfa3fb4 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
2012-09-29 23:52:50 +00:00
Argyrios Kyrtzidis e2ac16b09e 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
2012-09-29 01:06:04 +00:00
Daniel Jasper 1c84c68b6d 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
2012-09-28 15:45:07 +00:00
Alexander Kornienko 4d7e0ced7f 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
2012-09-25 17:18:14 +00:00
Jordan Rose 615a092a51 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
2012-09-22 01:24:42 +00:00
Alexander Potapenko 087c65fb27 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
2012-09-20 10:10:01 +00:00
Hal Finkel 7de3296402 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
2012-09-18 22:25:03 +00:00
Silviu Baranga 2df67ea86f 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
2012-09-13 15:06:00 +00:00
Anton Korobeynikov 8b0703d641 Do not construct StringRef from NULL argument.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163465 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-08 08:22:13 +00:00