| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 187568
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 187180
|
| |
|
|
| |
llvm-svn: 187065
|
| |
|
|
| |
llvm-svn: 186988
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
function-like macro. Clang will attempt to correct the arguments by detecting
braced initializer lists:
1) If possible, suggest parentheses around arguments
containing braced lists which will give the proper number of arguments.
2) If a braced list is detected at the start of a macro argument, it cannot be
corrected by parentheses. Instead, just point out the location of these
braced lists.
llvm-svn: 186971
|
| |
|
|
|
|
| |
Austin Seipp!
llvm-svn: 185896
|
| |
|
|
|
|
|
| |
with identifier info. This covers most identifier-like entities (other than
the ISO646 keywords).
llvm-svn: 185895
|
| |
|
|
|
|
|
| |
This is at least good documentation, but also opens the possibility of
using pipefail.
llvm-svn: 185652
|
| |
|
|
| |
llvm-svn: 185645
|
| |
|
|
|
|
| |
It's not the case on ie. FreeBSD.
llvm-svn: 185572
|
| |
|
|
|
|
| |
Patch by Job Noorman!
llvm-svn: 185362
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This allows clang to parse the type_traits header in Visual Studio 2012,
which is included widely in practice.
This is a rework of r163022 by João Matos. The original patch broke
preprocessing of gtest headers, which this patch addresses.
Patch by Will Wilson!
llvm-svn: 184968
|
| |
|
|
|
|
|
|
| |
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!!!
llvm-svn: 184830
|
| |
|
|
| |
llvm-svn: 184790
|
| |
|
|
|
|
| |
succession. Fixes PR16363.
llvm-svn: 184240
|
| |
|
|
|
|
| |
FAILIFMISMATCH linker command into the object file.
llvm-svn: 183178
|
| |
|
|
|
|
|
|
|
|
|
|
| |
When x is empty, x ## is suppressed, and when y gets expanded, the fact that it follows ## is not
available in the macro expansion result. The macro definition can be checked instead, the ## will
be available there regardless of what x expands to.
Fixes http://llvm.org/PR12767
Patch by Harald van Dijk!
llvm-svn: 182699
|
| |
|
|
|
|
| |
Other operating systems, including FreeBSD and NetBSD, use long.
llvm-svn: 182215
|
| |
|
|
| |
llvm-svn: 182029
|
| |
|
|
|
|
| |
It's an LP64 platform.
llvm-svn: 181867
|
| |
|
|
|
|
|
|
|
| |
provisional C++1y support.
Add __has_feature and __has_extension checks for C++1y features (based on the provisional names from
the C++ features study group), and update documentation to match.
llvm-svn: 181342
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 181211
|
| |
|
|
| |
llvm-svn: 181006
|
| |
|
|
|
|
|
|
| |
This adds a test to make sure we define _WCHAR_T_DEFINED and
_NATIVE_WCHAR_T_DEFINED correctly in the preprocessor, and updates
stddef.h to set it when typedeffing wchar_t.
llvm-svn: 180918
|
| |
|
|
| |
llvm-svn: 180719
|
| |
|
|
|
|
|
|
| |
line directives are emitted in the next line.
rdar://13722737
llvm-svn: 180718
|
| |
|
|
|
|
|
|
|
|
|
| |
The system_header pragma (from GCC) is implemented using line notes in the
source manager. However, a line note's line number specifies the number
not for the current line, but for the next line. This was making all
line numbers appear off by one after the pragma.
Reported by Andy Gibbs, uncovered during r179677.
llvm-svn: 179709
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch implements parsing ‘#pragma clang __debug’ as a first step for
implementing captured statements. Captured statements are a mechanism for
doing outlining in the AST.
see http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-January/027540.html.
Currently returns StmtEmpty
Author: Andy Zhang <andy.zhang@intel.com>
Differential Revision: http://llvm-reviews.chandlerc.com/D369
llvm-svn: 179614
|
| |
|
|
| |
llvm-svn: 179489
|
| |
|
|
|
|
| |
independent of float ABI feature in the MipsTargetInfoBase class.
llvm-svn: 179486
|
| |
|
|
|
|
|
| |
The bots seem to do more line wrapping because they have longer absolute
paths.
llvm-svn: 179284
|
| |
|
|
|
|
|
|
| |
This required some tedious reordering to match clang's order.
Presumably these ObjC tests were generated based on llvm-gcc's output
ordering.
llvm-svn: 179282
|
| |
|
|
|
|
|
| |
The escaping interaction between Python and grep doesn't work on my
system. This change fixes the tests for me.
llvm-svn: 179214
|
| |
|
|
|
|
| |
part of rdar://13610250
llvm-svn: 179144
|
| |
|
|
| |
llvm-svn: 179142
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The GNU line marker directive was sharing code with the #line directive, but some of the warnings/errors were reporting as #line directive diagnostics in both cases.
Previously:
#line 11foo1 ==> "#line directive requires a simple digit sequence"
# 11foo1 ==> "#line directive requires a simple digit sequence"
Now, we get:
#line 11foo1 ==> "#line directive requires a simple digit sequence"
# 11foo1 ==> "GNU line marker directive requires a simple digit sequence"
llvm-svn: 179139
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 178870
|
| |
|
|
|
|
| |
This fixes std::thread with libstdc++.
llvm-svn: 178816
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
of only lexically.
Syntactically means the function macro parameter names do not need to use the same
identifiers in order for the definitions to be considered identical.
Syntactic equivalence is a microsoft extension for macro redefinitions and we'll also
use this kind of comparison to check for ambiguous macros coming from modules.
rdar://13562254
llvm-svn: 178671
|
| |
|
|
| |
llvm-svn: 178226
|
| |
|
|
|
|
|
| |
The previous implementation missed the case where the elif condition was
evaluated from the context of an #ifdef that was false causing PR15539.
llvm-svn: 177345
|
| |
|
|
|
|
|
|
|
|
|
| |
This patch is designed for minimal intrusion into normal preprocessing
and compilation; under -E -traditional-cpp, the lexer will still
generate tok::comment nodes since it is preserving all whitespace, but
the output printer will then throw it away.
<rdar://problem/13338680>
llvm-svn: 176534
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It's beneficial when compiling to treat // as the start of a line
comment even in -std=c89 mode, since it's not valid C code (with a few
rare exceptions) and is usually intended as such. We emit a pedantic
warning and then continue on as if line comments were enabled.
This has been our behavior for quite some time.
However, people use the preprocessor for things besides C source files.
In today's prompting example, the input contains (unquoted) URLs, which
contain // but should still be preserved.
This change instructs the lexer to treat // as a plain token if Clang is
in C90 mode and generating preprocessed output rather than actually compiling.
<rdar://problem/13338743>
llvm-svn: 176526
|
| |
|
|
| |
llvm-svn: 176152
|
| |
|
|
|
|
|
|
|
|
| |
MacroDefinition object instead
its index in the preprocessed entities vector.
This is because the order of the entities in the vector can change in some (uncommon) cases.
llvm-svn: 175907
|
| |
|
|
|
|
|
|
|
|
|
|
| |
When parsing directives within skipped #if blocks, we don't want to retain
any whitespace. Previously we were just skipping comments, but it's not
possible to skip comments and retain other whitespace. This change matches
the usual behavior for parsing directives (i.e. the behavior outside of
skipped #if blocks).
<rdar://problem/13267695>
llvm-svn: 175840
|
| |
|
|
|
|
|
|
|
| |
Note that unlike GNU cpp we currently do not preserve whitespace in macros
(even in -traditional-cpp mode).
<rdar://problem/12897179>
llvm-svn: 175778
|
| |
|
|
| |
llvm-svn: 174815
|
| |
|
|
| |
llvm-svn: 174814
|
| |
|
|
|
|
|
|
| |
Add warnings under -Wc++11-compat, -Wc++98-compat, and -Wc99-compat when a
particular UCN is incompatible with a different standard, and -Wunicode when
a UCN refers to a surrogate character in C++03.
llvm-svn: 174788
|