Douglas Gregor
cf9f3ea6f9
Fix canonicalization of protocol-qualified types
...
llvm-svn: 147421
2012-01-02 02:00:30 +00:00
Douglas Gregor
1bd9617671
Move ObjCProtocolDecl::EndLoc into its DefinitionData, and give
...
ObjCProtocolDecl proper source-range information.
llvm-svn: 147420
2012-01-02 01:18:16 +00:00
Douglas Gregor
05a1f4d60b
Eliminate the ForwardDecl/InitiallyForwardDecl bits from ObjCProtocolDecl. They are no longer needed
...
llvm-svn: 147419
2012-01-01 22:06:18 +00:00
Abramo Bagnara
123bec89ab
Added -Wdisabled-macro-expansion warning.
...
llvm-svn: 147418
2012-01-01 22:01:04 +00:00
Douglas Gregor
da38930cf3
Implement declaration merging for Objective-C protocols across
...
multiple, disjoint modules. There is far too much duplicating with the
ObjCInterfaceDecl case here, which I'll eliminate shortly.
llvm-svn: 147417
2012-01-01 21:47:52 +00:00
Douglas Gregor
a503bb9ce4
Eliminate redundant, empty function
...
llvm-svn: 147416
2012-01-01 21:39:12 +00:00
Douglas Gregor
f610267581
Eliminate ObjCForwardProtocolDecl, which is redundant now that
...
ObjCProtocolDecl modules forward declarations properly.
llvm-svn: 147415
2012-01-01 21:23:57 +00:00
Douglas Gregor
c51118238c
Don't bother rewriting an Objective-C class or protocol declaration to the module file when we've merely added a definition
...
llvm-svn: 147414
2012-01-01 20:35:33 +00:00
Douglas Gregor
42ff1bb922
Eliminate ASTMutationListener::UpdatedAttributeList, which is no
...
longer needed now that we aren't back-patching ObjCProtocolDecls.
llvm-svn: 147413
2012-01-01 20:33:24 +00:00
Douglas Gregor
32c1757730
Wire up redeclaration chains for Objective-C protocols, so that both
...
forward declarations and definitions of an Objective-C protocol are
represented within a single chain of ObjCProtocolDecls.
llvm-svn: 147412
2012-01-01 20:30:41 +00:00
Craig Topper
b910984458
Allow CRC32 instructions to be selected when AVX is enabled.
...
llvm-svn: 147411
2012-01-01 19:51:58 +00:00
Douglas Gregor
a715bfff98
Introduce the core infrastructure needed to model redeclaration chains
...
for Objective-C protocols, including:
- Using the first declaration as the canonical declaration
- Using the definition as the primary DeclContext
- Making sure that all declarations have a pointer to the definition
data, and that we know which declaration is the definition
- Serialization support for redeclaration chains and for adding
definitions to already-serialized declarations.
However, note that we're not taking advantage of much of this code
yet, because we're still re-using ObjCProtocolDecls.
llvm-svn: 147410
2012-01-01 19:51:50 +00:00
Craig Topper
1c064e0a89
Fix sfence, lfence, mfence, and clflush to be able to be selected when AVX is enabled. Fix monitor and mwait to require SSE3 or AVX, previously they worked even if SSE3 was disabled. Make prefetch instructions not set the execution domain since they don't use XMM registers.
...
llvm-svn: 147409
2012-01-01 19:40:22 +00:00
Douglas Gregor
e6e48b1490
Move the data that corresponds to the definition of a protocol into a
...
separately-allocated DefinitionData structure. Introduce various
functions that will help with the separation of declarations from
definitions (isThisDeclarationADefinition(), hasDefinition(),
getDefinition()).
llvm-svn: 147408
2012-01-01 19:29:29 +00:00
Rafael Espindola
01fb1135d6
Use hasSameType.
...
llvm-svn: 147407
2012-01-01 18:36:59 +00:00
Douglas Gregor
33b2429bf3
Use declaresSameEntity() when comparing ObjCProtocolDecls, and
...
getCanonicalDecl() when putting ObjCProtocolDecls into a set. This is
groundwork for making ObjCProtocolDecl redeclarable.
llvm-svn: 147406
2012-01-01 18:09:12 +00:00
Rafael Espindola
0f960a0a5a
Consider visibility attributes in namespaces as being explicit. I.e., they
...
take precedence over command line options. Fixes PR10113.
llvm-svn: 147405
2012-01-01 18:06:40 +00:00
Benjamin Kramer
47aecca51a
X86Disassembler: Fix undefined behavior found by GCC 4.6
...
llvm-svn: 147404
2012-01-01 17:55:36 +00:00
Benjamin Kramer
9442cd01f6
PatternMatch: Introduce a matcher for instructions with the "exact" bit. Use it to simplify a few matchers.
...
llvm-svn: 147403
2012-01-01 17:55:30 +00:00
Benjamin Kramer
c5bc4cccd5
PatternMatch: Simplify code by reusing the Operator class.
...
llvm-svn: 147402
2012-01-01 17:55:23 +00:00
Rafael Espindola
09593a322a
Replace a isa+cast with a dyn_cast.
...
llvm-svn: 147401
2012-01-01 17:48:19 +00:00
Rafael Espindola
d3df940169
Revert 147399. It broke CodeGen/ARM/vext.ll.
...
llvm-svn: 147400
2012-01-01 17:36:23 +00:00
Elena Demikhovsky
67f80c3432
Fixed a bug in SelectionDAG.cpp.
...
The failure seen on win32, when i64 type is illegal.
It happens on stage of conversion VECTOR_SHUFFLE to BUILD_VECTOR.
The failure message is:
llc: SelectionDAG.cpp:784: void VerifyNodeCommon(llvm::SDNode*): Assertion `(I->getValueType() == EltVT || (EltVT.isInteger() && I->getValueType().isInteger() && EltVT.bitsLE(I->getValueType()))) && "Wrong operand type!"' failed.
I added a special test that checks vector shuffle on win32.
llvm-svn: 147399
2012-01-01 16:22:47 +00:00
NAKAMURA Takumi
e9d3d21988
Happy new year 2012!
...
llvm-svn: 147395
2012-01-01 08:16:56 +00:00
Craig Topper
6e54ba7eee
Merge X86 SHUFPS and SHUFPD node types.
...
llvm-svn: 147394
2011-12-31 23:50:21 +00:00
Craig Topper
d51092d93a
Add patterns for integer forms of SHUFPD/VSHUFPD with a memory load.
...
llvm-svn: 147393
2011-12-31 23:24:49 +00:00
Craig Topper
0e796fee11
Fix typo in a SHUFPD and VSHUFPD pattern that prevented SHUFPD/VSHUFPD with a load from being selected.
...
llvm-svn: 147392
2011-12-31 23:15:11 +00:00
Nick Lewycky
b59008c694
Make use of the exact bit when optimizing '(X >>exact 3) << 1' to eliminate the
...
'and' that would zero out the trailing bits, and to produce an exact shift
ourselves.
llvm-svn: 147391
2011-12-31 21:30:22 +00:00
Dylan Noblesmith
1c65a21ec4
VMCore: add assert for miscompile
...
See PR11652. Trying to add this assert to
setSubclassData() itself actually prevented
the miscompile entirely, so it has to be here.
This makes the source of the bug more obvious
than the other asserts triggering later on did.
llvm-svn: 147390
2011-12-31 13:58:58 +00:00
NAKAMURA Takumi
1154e75c7c
clang/unittests/Basic/SourceManagerTest.cpp: Fixup corresponding to r147387.
...
llvm-svn: 147388
2011-12-31 04:25:56 +00:00
Douglas Gregor
1fb5c3a63a
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).
llvm-svn: 147387
2011-12-31 04:05:44 +00:00
NAKAMURA Takumi
84a5dfdf72
Split out clang/test/Driver/debug-options-as.c from debug-options.c, and mark it as XFAIL: mingw32.
...
Mingw32 target has not supported integrated-as yet.
llvm-svn: 147386
2011-12-31 02:36:23 +00:00
Richard Smith
88eb4d3a45
Fix crash when trying to pretty-print unicode or wide string literals.
...
llvm-svn: 147385
2011-12-30 23:37:31 +00:00
Richard Smith
fddd384b73
Unrevert r147271, reverted in r147361.
...
Also temporarily remove the assumption from IR gen that we can emit IR for every
constant we can fold, since it isn't currently true in C++11, to fix PR11676.
Original comment from r147271:
constexpr: perform zero-initialization prior to / instead of performing a
constructor call when appropriate. Thanks to Eli for spotting this.
llvm-svn: 147384
2011-12-30 21:15:51 +00:00
Bruno Cardoso Lopes
cd1d447d62
Cleanup Mips code and rename some variables. Patch by Jack Carter
...
llvm-svn: 147383
2011-12-30 21:09:41 +00:00
Bruno Cardoso Lopes
d5b2834fb7
Improve Mips JIT.
...
Implement encoder methods getJumpTargetOpValue and getBranchTargetOpValue
for jmptarget and brtarget Mips tablegen operand types in the code emitter
for old-style JIT. Rename the pc relative relocation for branches - new
name is Mips::reloc_mips_pc16.
Patch by Sasa Stankovic
llvm-svn: 147382
2011-12-30 21:04:30 +00:00
Nick Lewycky
5079e4dd0b
Remove extraneous ".get()->" which is just "->". No functionality change.
...
llvm-svn: 147379
2011-12-30 19:17:23 +00:00
Rafael Espindola
30ccf36224
Add CXX_FINAL_ATTR, CXX_OVERRIDE_ATTR, ANNOTATE_ATTR and ASM_LABEL_ATTR to the
...
python bindinds.
patch by Tom Schuster!
llvm-svn: 147378
2011-12-30 15:27:22 +00:00
NAKAMURA Takumi
96d77daa49
clang/lib/Headers/CMakeLists.txt: Unbreak cmake build.
...
llvm-svn: 147373
2011-12-30 10:38:16 +00:00
Craig Topper
b4ceb6fd52
Add FMA4 intrinsics.
...
llvm-svn: 147372
2011-12-30 09:15:03 +00:00
Craig Topper
ba418d8e91
Remove an accidental change from r147370. Would only break if the new fma4 flag was used.
...
llvm-svn: 147371
2011-12-30 07:35:49 +00:00
Craig Topper
ffdb46ceef
Add FMA4 feature flag. Intrinsics coming soon. Also make sse4a feature flag imply sse3. Matches gcc behavior.
...
llvm-svn: 147370
2011-12-30 07:33:42 +00:00
Craig Topper
a5d1fc2cc7
Make FMA4 imply AVX so that YMM registers would be available. Necessitates removing from Bulldozer CPU types since it would enable AVX code generation implicitly. Also make SSE4A imply SSE3. Without some level of SSE implied, XMM registers wouldn't be legal.
...
llvm-svn: 147369
2011-12-30 07:16:00 +00:00
Craig Topper
2ba766ae84
Add disassembler support for VPERMIL2PD and VPERMIL2PS.
...
llvm-svn: 147368
2011-12-30 06:23:39 +00:00
Craig Topper
03a0beda88
Add FMA4 instructions to disassembler.
...
llvm-svn: 147367
2011-12-30 05:20:36 +00:00
Craig Topper
cd93de93fa
Separate the concept of having memory access in operand 4 from the concept of having the W bit set for XOP instructons. Removes ORing W-bits in the encoder and will similarly simplify the disassembler implementation.
...
llvm-svn: 147366
2011-12-30 04:48:54 +00:00
Craig Topper
c0f9bcb5d5
Combine FMA4 SS/SD patterns with the instruction definitions.
...
llvm-svn: 147365
2011-12-30 03:33:59 +00:00
Craig Topper
51fe43fcd9
Combine FMA4 PS/PD patterns with the instruction definitions.
...
llvm-svn: 147364
2011-12-30 03:17:15 +00:00
Rafael Espindola
f49e9ce849
Add test for PRr11676.
...
llvm-svn: 147363
2011-12-30 03:13:44 +00:00
Rafael Espindola
fafe4b7572
Revert r147271. This fixes PR11676.
...
llvm-svn: 147362
2011-12-30 03:11:50 +00:00