summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Documentation: Lexicon.rst: add 'SLP' acronymDmitri Gribenko2012-12-111-1/+7
| | | | llvm-svn: 169928
* Adding a validation callback mechanism to OptionValueString (such a feature ↵Enrico Granata2012-12-114-31/+151
| | | | | | | | | | might theoretically be added to the general OptionValue base class should the need arise) Using this mechanism, making sure that the options to pass a summary string or a named summary to frame variable do not have invalid values <rdar://problem/11576143> llvm-svn: 169927
* Fixed the IRInterpreter's handling of "this" andSean Callanan2012-12-112-56/+122
| | | | | | | | | | | | | | | | | | | | | | | "self" when those pointers are in registers. Previously in this case the IRInterpreter would handle them just as if the user had typed in "$rdi", which isn't safe because $rdi is passed in through the argument struct. Now we correctly break out all three cases (i.e., normal variables in registers, $reg, and this/self), and handle them in a way that's a little bit easier to read and change. This results in more accurate printing of "this" and "self" pointers all around. I have strengthened the optimized-code test case for Objective-C to ensure that we catch regressions in this area reliably in the future. <rdar://problem/12693963> llvm-svn: 169924
* Try to fix Win32 failuresDouglas Gregor2012-12-111-1/+1
| | | | llvm-svn: 169923
* Don't use 'touch' in this test; it may be the cause of Windows-related failures.Douglas Gregor2012-12-111-1/+1
| | | | llvm-svn: 169922
* Use @import rather than @__experimental_modules_import, since theDouglas Gregor2012-12-1170-131/+131
| | | | | | latter is rather a mess to type. llvm-svn: 169919
* Add SPIR32/SPIR64 targets to ClangGuy Benyei2012-12-113-0/+141
| | | | llvm-svn: 169917
* PR14574. Fix a bug in the code that calculates the mask the converted PHIs ↵Nadav Rotem2012-12-112-1/+45
| | | | | | in if-conversion. llvm-svn: 169916
* Add R600 backendTom Stellard2012-12-11146-1/+20232
| | | | | | A new backend supporting AMD GPUs: Radeon HD2XXX - HD7XXX llvm-svn: 169915
* This patch implements the general dynamic TLS model for 64-bit PowerPC.Bill Schmidt2012-12-1115-15/+246
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Given a thread-local symbol x with global-dynamic access, the generated code to obtain x's address is: Instruction Relocation Symbol addis ra,r2,x@got@tlsgd@ha R_PPC64_GOT_TLSGD16_HA x addi r3,ra,x@got@tlsgd@l R_PPC64_GOT_TLSGD16_L x bl __tls_get_addr(x@tlsgd) R_PPC64_TLSGD x R_PPC64_REL24 __tls_get_addr nop <use address in r3> The implementation borrows from the medium code model work for introducing special forms of ADDIS and ADDI into the DAG representation. This is made slightly more complicated by having to introduce a call to the external function __tls_get_addr. Using the full call machinery is overkill and, more importantly, makes it difficult to add a special relocation. So I've introduced another opcode GET_TLS_ADDR to represent the function call, and surrounded it with register copies to set up the parameter and return value. Most of the code is pretty straightforward. I ran into one peculiarity when I introduced a new PPC opcode BL8_NOP_ELF_TLSGD, which is just like BL8_NOP_ELF except that it takes another parameter to represent the symbol ("x" above) that requires a relocation on the call. Something in the TblGen machinery causes BL8_NOP_ELF and BL8_NOP_ELF_TLSGD to be treated identically during the emit phase, so this second operand was never visited to generate relocations. This is the reason for the slightly messy workaround in PPCMCCodeEmitter.cpp:getDirectBrEncoding(). Two new tests are included to demonstrate correct external assembly and correct generation of relocations using the integrated assembler. Comments welcome! Thanks, Bill llvm-svn: 169910
* Add -fslp-vectorize to enable bb-vectorizeHal Finkel2012-12-113-0/+25
| | | | | | | | | | | Add -fslp-vectorize (with -ftree-slp-vectorize as an alias for gcc compatibility) to provide a way to enable the basic-block vectorization pass. This uses the same acronym as gcc, superword-level parallelism (SLP), also common in the literature, to refer to basic-block vectorization. Nadav suggested this as a follow-up to the adding of -fvectorize. llvm-svn: 169909
* objective-C blocks: Check for record type when deciding if Fariborz Jahanian2012-12-112-1/+8
| | | | | | | byref variable requires extended layout info. to prevent a crash involving arrays declared __block. // rdar://12787751 llvm-svn: 169908
* Update some comments.Eric Christopher2012-12-112-6/+6
| | | | llvm-svn: 169907
* Loop Vectorize: optimize the vectorization of trunc(induction_var). The ↵Nadav Rotem2012-12-115-5/+46
| | | | | | truncation is now done on scalars. llvm-svn: 169904
* Don't complain about incomplete implementations for methods that areDouglas Gregor2012-12-112-2/+13
| | | | | | unavailable due to availability attributes. <rdar://problem/12798237> llvm-svn: 169903
* Speed up looking up static diagnostic infos.Benjamin Kramer2012-12-111-8/+41
| | | | | | | | | | | 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. llvm-svn: 169890
* [driver] Add the -ftree-vectorize flag as a alias of -fvectorize to maintainChad Rosier2012-12-112-0/+6
| | | | | | | compatibility with gcc. rdar://12839978 llvm-svn: 169888
* Fix a copypasto bug. Also rename the parameter in question to not shadow theMatt Beaumont-Gay2012-12-111-3/+3
| | | | | | | | 'file' builtin, and fix up a docstring a little. Hat tip to Sebastian Kreft Carreno at Google for noticing the bug. llvm-svn: 169887
* Remove the RelaxAll overrule in MCAssembler::fixupNeedsRelaxation,Eli Bendersky2012-12-111-3/+2
| | | | | | | | | | | | because that method is only getting called for MCInstFragment. These fragments aren't even generated when RelaxAll is set, which is why the flag reference here is superfluous. Removing it simplifies the code with no harmful effects. An assertion is added higher up to make sure this path is never reached. llvm-svn: 169886
* [driver] Add the -fvectorize flag to enable the loop vectorization passes.Chad Rosier2012-12-113-0/+19
| | | | | | rdar://12839978 llvm-svn: 169885
* Use an ArrayRef instead of a std::vector&.Rafael Espindola2012-12-112-6/+6
| | | | llvm-svn: 169881
* Add comment for load foldingJoel Jones2012-12-111-0/+5
| | | | llvm-svn: 169880
* Documentation: convert Passes.html to reST.Dmitri Gribenko2012-12-112-2025/+1264
| | | | | | | | | Since now we have an autogenerated TOC, a manually written table of all passes was removed. Patch by Anthony Mykhailenko with small fixes by me. llvm-svn: 169867
* StmtDumper coding style changesAlexander Kornienko2012-12-111-105/+131
| | | | | | | | | | | | | | | | | | | | | Summary: A few small coding style changes for StmtDumper, including: - rename Dump* methods to dump* - uninline some methods - comment fixes - whitespace fixes Please review and commit if okay. Reviewers: alexfh Reviewed By: alexfh CC: cfe-commits, alexfh, klimek Differential Revision: http://llvm-reviews.chandlerc.com/D190 llvm-svn: 169866
* Rename StmtDumper::DumpSubTree() to dumpStmt()Alexander Kornienko2012-12-111-86/+84
| | | | | | | | | | | | | | | | | Summary: Also rename DumpDeclarator() to dumpDecl(). Once Decl dumping is added, these will be the two main methods of the class, so this is just for consistency in naming. There was a DumpStmt() method already, but there was no point in having it, so I have merged it into VisitStmt(). Similarly, DumpExpr() is merged into VisitExpr(). Reviewers: alexfh Reviewed By: alexfh CC: cfe-commits, alexfh Differential Revision: http://llvm-reviews.chandlerc.com/D156 llvm-svn: 169865
* [asan] more code for asan_allocator2: basic Allocate/Deallocate codeKostya Serebryany2012-12-113-16/+157
| | | | llvm-svn: 169864
* llvm/test/TableGen: Remove XFAIL:vg_leak in dozen of tests, according to ↵NAKAMURA Takumi2012-12-1136-36/+0
| | | | | | llvm-x86_64-linux-vg_leak. llvm-svn: 169862
* Add MemorySanitizer runtime to check_lint.sh.Evgeniy Stepanov2012-12-111-1/+5
| | | | llvm-svn: 169861
* [msan] Add a missing file from r169858.Evgeniy Stepanov2012-12-111-0/+124
| | | | llvm-svn: 169860
* [msan] Use explicitely aligned stores and loads with function argument shadow.Evgeniy Stepanov2012-12-111-8/+13
| | | | | | | | Use explicitely aligned store and load instructions to deal with argument and retval shadow. This matters when an argument's alignment is higher than __msan_param_tls alignment (which is the case with __m128i). llvm-svn: 169859
* [msan] MemorySanitizer runtime.Evgeniy Stepanov2012-12-1111-1/+1779
| | | | | | Initial commit of the MemorySanitizer runtime library. llvm-svn: 169858
* ASan: fix lint problems introducedTimur Iskhodzhanov2012-12-111-4/+4
| | | | llvm-svn: 169857
* Hopefully fix the Windows build (2)Timur Iskhodzhanov2012-12-111-0/+2
| | | | llvm-svn: 169856
* Hopefully fix the Windows build by not including intrin.hTimur Iskhodzhanov2012-12-111-1/+6
| | | | llvm-svn: 169855
* Revert EVT->MVT changes, r169836-169851, due to buildbot failures.Patrik Hagglund2012-12-1128-281/+245
| | | | llvm-svn: 169854
* Holding my nose and moving the accumulation routine to GEPOperatorChandler Carruth2012-12-113-62/+44
| | | | | | | | | | | | | | | | | instead of the instruction. I've left a forwarding wrapper for the instruction so users with the instruction don't need to create a GEPOperator themselves. This lets us remove the copy of this code in instsimplify. I've looked at most of the other copies of similar code, and this is the only one I've found that is actually exactly the same. The one in InlineCost is very close, but it requires re-mapping non-constant indices through the cost analysis value simplification map. I could add direct support for this to the generic routine, but it seems overly specific. llvm-svn: 169853
* Hoist the GEP constant address offset computation to a common home onChandler Carruth2012-12-114-25/+46
| | | | | | | | | | | the GEP instruction class. This is part of the continued refactoring and cleaning of the infrastructure used by SROA. This particular operation is also done in a few other places which I'll try to refactor to share this implementation. llvm-svn: 169852
* Change RegVT in BitTestBlock and RegsForValue, to contain MVTs,Patrik Hagglund2012-12-112-13/+12
| | | | | | instead of EVTs. llvm-svn: 169851
* Change TargetLowering::getTypeForExtArgOrReturn to take and returnPatrik Hagglund2012-12-115-8/+30
| | | | | | | | MVTs, instead of EVTs. Accordingly, add bitsLT (and similar) to MVT. llvm-svn: 169850
* Change a parameter of TargetLowering::getVectorTypeBreakdown to MVT,Patrik Hagglund2012-12-113-18/+25
| | | | | | from EVT. llvm-svn: 169849
* Change TargetLowering::RegisterTypeForVT to contain MVTs, instead ofPatrik Hagglund2012-12-117-24/+24
| | | | | | EVTs. llvm-svn: 169848
* Change TargetLowering::TransformToType to contain MVTs, instead ofPatrik Hagglund2012-12-112-13/+13
| | | | | | EVTs. llvm-svn: 169847
* Change TargetLowering::getRepRegClassCostFor, getIndexedLoadAction,Patrik Hagglund2012-12-111-19/+16
| | | | | | | getIndexedStoreAction, and addRegisterClass to take an MVT, instead of EVT. llvm-svn: 169846
* Change TargetLowering::findRepresentativeClass to take an MVT, insteadPatrik Hagglund2012-12-116-9/+9
| | | | | | of EVT. llvm-svn: 169845
* Change TargetLowering::getTypeToPromoteTo to take and return MVTs,Patrik Hagglund2012-12-113-12/+12
| | | | | | instead of EVTs. llvm-svn: 169844
* Change TargetLowering::isCondCodeLegal to take an MVT, instead of EVT.Patrik Hagglund2012-12-113-15/+18
| | | | llvm-svn: 169843
* Change TargetLowering::getCondCodeAction to take an MVT, instead ofPatrik Hagglund2012-12-113-10/+10
| | | | | | EVT. llvm-svn: 169842
* Change TargetLowering::getTruncStoreAction to take MVTs, instead of EVTs.Patrik Hagglund2012-12-113-9/+9
| | | | llvm-svn: 169841
* Change TargetLowering::getLoadExtAction to take an MVT, instead of EVT.Patrik Hagglund2012-12-113-7/+7
| | | | llvm-svn: 169840
* Change TargetLowering::setTypeAction to take an MVT, instead fo EVT.Patrik Hagglund2012-12-112-3/+3
| | | | llvm-svn: 169839
OpenPOWER on IntegriCloud