summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Don't bother rewriting an Objective-C class or protocol declaration to the ↵Douglas Gregor2012-01-011-2/+0
| | | | | | module file when we've merely added a definition llvm-svn: 147414
* Eliminate ASTMutationListener::UpdatedAttributeList, which is noDouglas Gregor2012-01-014-17/+1
| | | | | | longer needed now that we aren't back-patching ObjCProtocolDecls. llvm-svn: 147413
* Wire up redeclaration chains for Objective-C protocols, so that bothDouglas Gregor2012-01-0113-75/+126
| | | | | | | forward declarations and definitions of an Objective-C protocol are represented within a single chain of ObjCProtocolDecls. llvm-svn: 147412
* Allow CRC32 instructions to be selected when AVX is enabled.Craig Topper2012-01-013-2/+24
| | | | llvm-svn: 147411
* Introduce the core infrastructure needed to model redeclaration chainsDouglas Gregor2012-01-0111-19/+110
| | | | | | | | | | | | | | | 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
* Fix sfence, lfence, mfence, and clflush to be able to be selected when AVX ↵Craig Topper2012-01-015-22/+71
| | | | | | 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
* Move the data that corresponds to the definition of a protocol into aDouglas Gregor2012-01-0112-67/+173
| | | | | | | | | separately-allocated DefinitionData structure. Introduce various functions that will help with the separation of declarations from definitions (isThisDeclarationADefinition(), hasDefinition(), getDefinition()). llvm-svn: 147408
* Use hasSameType.Rafael Espindola2012-01-011-2/+1
| | | | llvm-svn: 147407
* Use declaresSameEntity() when comparing ObjCProtocolDecls, andDouglas Gregor2012-01-013-8/+16
| | | | | | | getCanonicalDecl() when putting ObjCProtocolDecls into a set. This is groundwork for making ObjCProtocolDecl redeclarable. llvm-svn: 147406
* Consider visibility attributes in namespaces as being explicit. I.e., theyRafael Espindola2012-01-012-1/+13
| | | | | | take precedence over command line options. Fixes PR10113. llvm-svn: 147405
* X86Disassembler: Fix undefined behavior found by GCC 4.6Benjamin Kramer2012-01-011-3/+5
| | | | llvm-svn: 147404
* PatternMatch: Introduce a matcher for instructions with the "exact" bit. Use ↵Benjamin Kramer2012-01-013-19/+30
| | | | | | it to simplify a few matchers. llvm-svn: 147403
* PatternMatch: Simplify code by reusing the Operator class.Benjamin Kramer2012-01-011-22/+12
| | | | llvm-svn: 147402
* Replace a isa+cast with a dyn_cast.Rafael Espindola2012-01-011-3/+3
| | | | llvm-svn: 147401
* Revert 147399. It broke CodeGen/ARM/vext.ll.Rafael Espindola2012-01-012-47/+5
| | | | llvm-svn: 147400
* Fixed a bug in SelectionDAG.cpp.Elena Demikhovsky2012-01-012-5/+47
| | | | | | | | | | | | 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
* Happy new year 2012!NAKAMURA Takumi2012-01-018-13/+13
| | | | llvm-svn: 147395
* Merge X86 SHUFPS and SHUFPD node types.Craig Topper2011-12-314-58/+35
| | | | llvm-svn: 147394
* Add patterns for integer forms of SHUFPD/VSHUFPD with a memory load.Craig Topper2011-12-312-0/+70
| | | | llvm-svn: 147393
* Fix typo in a SHUFPD and VSHUFPD pattern that prevented SHUFPD/VSHUFPD with ↵Craig Topper2011-12-312-4/+36
| | | | | | a load from being selected. llvm-svn: 147392
* Make use of the exact bit when optimizing '(X >>exact 3) << 1' to eliminate theNick Lewycky2011-12-312-5/+29
| | | | | | | 'and' that would zero out the trailing bits, and to produce an exact shift ourselves. llvm-svn: 147391
* VMCore: add assert for miscompileDylan Noblesmith2011-12-311-0/+5
| | | | | | | | | | | 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
* clang/unittests/Basic/SourceManagerTest.cpp: Fixup corresponding to r147387.NAKAMURA Takumi2011-12-311-2/+2
| | | | llvm-svn: 147388
* Implement support for module requirements, which indicate the languageDouglas Gregor2011-12-3119-36/+385
| | | | | | | | | 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
* Split out clang/test/Driver/debug-options-as.c from debug-options.c, and ↵NAKAMURA Takumi2011-12-312-7/+10
| | | | | | | | mark it as XFAIL: mingw32. Mingw32 target has not supported integrated-as yet. llvm-svn: 147386
* Fix crash when trying to pretty-print unicode or wide string literals.Richard Smith2011-12-302-8/+33
| | | | llvm-svn: 147385
* Unrevert r147271, reverted in r147361.Richard Smith2011-12-309-74/+236
| | | | | | | | | | | | 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
* Cleanup Mips code and rename some variables. Patch by Jack CarterBruno Cardoso Lopes2011-12-304-171/+79
| | | | llvm-svn: 147383
* Improve Mips JIT.Bruno Cardoso Lopes2011-12-303-6/+15
| | | | | | | | | | | 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
* Remove extraneous ".get()->" which is just "->". No functionality change.Nick Lewycky2011-12-301-5/+5
| | | | llvm-svn: 147379
* Add CXX_FINAL_ATTR, CXX_OVERRIDE_ATTR, ANNOTATE_ATTR and ASM_LABEL_ATTR to theRafael Espindola2011-12-301-0/+5
| | | | | | | python bindinds. patch by Tom Schuster! llvm-svn: 147378
* clang/lib/Headers/CMakeLists.txt: Unbreak cmake build.NAKAMURA Takumi2011-12-301-0/+1
| | | | llvm-svn: 147373
* Add FMA4 intrinsics.Craig Topper2011-12-304-0/+435
| | | | llvm-svn: 147372
* Remove an accidental change from r147370. Would only break if the new fma4 ↵Craig Topper2011-12-301-4/+0
| | | | | | flag was used. llvm-svn: 147371
* Add FMA4 feature flag. Intrinsics coming soon. Also make sse4a feature flag ↵Craig Topper2011-12-303-8/+32
| | | | | | imply sse3. Matches gcc behavior. llvm-svn: 147370
* Make FMA4 imply AVX so that YMM registers would be available. Necessitates ↵Craig Topper2011-12-301-6/+8
| | | | | | 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
* Add disassembler support for VPERMIL2PD and VPERMIL2PS.Craig Topper2011-12-304-11/+26
| | | | llvm-svn: 147368
* Add FMA4 instructions to disassembler.Craig Topper2011-12-304-39/+69
| | | | llvm-svn: 147367
* Separate the concept of having memory access in operand 4 from the concept ↵Craig Topper2011-12-305-34/+26
| | | | | | 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
* Combine FMA4 SS/SD patterns with the instruction definitions.Craig Topper2011-12-301-97/+24
| | | | llvm-svn: 147365
* Combine FMA4 PS/PD patterns with the instruction definitions.Craig Topper2011-12-301-219/+42
| | | | llvm-svn: 147364
* Add test for PRr11676.Rafael Espindola2011-12-301-0/+8
| | | | llvm-svn: 147363
* Revert r147271. This fixes PR11676.Rafael Espindola2011-12-308-229/+68
| | | | llvm-svn: 147362
* Change FMA4 memory forms to use memopv* instead of alignedloadv*. No need to ↵Craig Topper2011-12-302-58/+72
| | | | | | force alignment on these instructions. Add a couple testcases for memory forms. llvm-svn: 147361
* Fix load size for FMA4 SS/SD instructions. They need to use f32 and f64 ↵Craig Topper2011-12-302-60/+71
| | | | | | size, but with the special handling to be compatible with the intrinsic expecting a vector. Similar handling is already used elsewhere. llvm-svn: 147360
* Cleanup stack/frame register define/kill states. This fixes two bugs:Hal Finkel2011-12-304-25/+31
| | | | | | | | 1. The ST*UX instructions that store and update the stack pointer did not set define/kill on R1. This became a problem when I activated post-RA scheduling (and had incorrectly adjusted the Frames-large test). 2. eliminateFrameIndex did not kill its scavenged temporary register, and this could cause the scavenger to exhaust all available registers (and its emergency spill slot) when there were a lot of CR values to spill. The 2010-02-12-saveCR test has been adjusted to check for this. llvm-svn: 147359
* <rdar://problem/10368163>Greg Clayton2011-12-303-30/+100
| | | | | | | | Watch for empty symbol tables by doing a lot more error checking on all mach-o symbol table load command values and data that is obtained. This avoids a crash that was happening when there was no string table. llvm-svn: 147358
* Change the diagnostics which said 'accepted as an extension' to instead sayRichard Smith2011-12-2926-93/+90
| | | | | | | 'is an extension'. The former is inappropriate and confusing when building with -Werror/-pedantic-errors. llvm-svn: 147357
* Implement cfi_restore. Patch by Brian Anderson!Rafael Espindola2011-12-296-2/+80
| | | | llvm-svn: 147356
* Unbreak cmake build after r147340.Richard Smith2011-12-291-0/+1
| | | | llvm-svn: 147355
OpenPOWER on IntegriCloud