summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Bug fix: note diagnosis on expression narrowing should say "variable ↵Larisse Voufo2013-08-143-2/+15
| | | | | | template" instead of "static data member" when appropriate llvm-svn: 188409
* Fix grammar mistake. Shuxin Yang2013-08-141-1/+1
| | | | | | Thank Richard Smith for figuring out this problem. llvm-svn: 188408
* Actually fix PPC64 64-bit GPR inline asm constraint matchingHal Finkel2013-08-142-1/+44
| | | | | | | | | | This is a follow-up to r187693, correcting that code to request the correct register class. The previous version, with the wrong register class, was not really correcting the constraints, but rather was removing them. Coincidentally, this fixed the failing test case in r187693, but obviously created other problems. llvm-svn: 188407
* Do no use -emit-llvm for -flto.Shuxin Yang2013-08-141-5/+4
| | | | | | Tested on multiple OSes. llvm-svn: 188406
* Testcase for r188400.Benjamin Kramer2013-08-142-0/+6
| | | | llvm-svn: 188405
* cpp11-migrate: Remove mention of 'headers' from serialization codeEdwin Vane2013-08-1411-72/+64
| | | | | | | | | | | | | * HeaderChangeDocument -> MigratorDocument * HeaderFileName -> TargetFile * SourceFileName -> MainSourceFile * Removed TransformID * Comments updated, at least with respect to serialization * Unit tests updated. Differential Revision: http://llvm-reviews.chandlerc.com/D1403 llvm-svn: 188404
* Add support for -fsanitize-blacklist and default blacklists for DFSan.Peter Collingbourne2013-08-145-1/+154
| | | | | | | | Also add some documentation. Differential Revision: http://llvm-reviews.chandlerc.com/D1346 llvm-svn: 188403
* DataFlowSanitizer: greylist is now ABI list.Peter Collingbourne2013-08-144-99/+334
| | | | | | | | | | | | | | | | | | | | | | | | | This replaces the old incomplete greylist functionality with an ABI list, which can provide more detailed information about the ABI and semantics of specific functions. The pass treats every function in the "uninstrumented" category in the ABI list file as conforming to the "native" (i.e. unsanitized) ABI. Unless the ABI list contains additional categories for those functions, a call to one of those functions will produce a warning message, as the labelling behaviour of the function is unknown. The other supported categories are "functional", "discard" and "custom". - "discard" -- This function does not write to (user-accessible) memory, and its return value is unlabelled. - "functional" -- This function does not write to (user-accessible) memory, and the label of its return value is the union of the label of its arguments. - "custom" -- Instead of calling the function, a custom wrapper __dfsw_F is called, where F is the name of the function. This function may wrap the original function or provide its own implementation. Differential Revision: http://llvm-reviews.chandlerc.com/D1345 llvm-svn: 188402
* [dfsan] Runtime support for ABI list functionality; can now run integration ↵Peter Collingbourne2013-08-147-10/+60
| | | | | | | | tests with args ABI. Differential Revision: http://llvm-reviews.chandlerc.com/D1351 llvm-svn: 188401
* Enhance the clang -v gcc debug printing to skip obviously bad and duplicate ↵Benjamin Kramer2013-08-142-4/+6
| | | | | | | | | | | | | | | paths. Otherwise it lists all files (e.g. shared libraries) that happen to be in the same paths the GCC installations usually reside in. On a x86_64 Debian 7 system with i386 multilibs. before: clang -v 2>&1|wc -l 3059 after: clang -v 2>&1|wc -l 10 llvm-svn: 188400
* [lit] Support parsing scripts with inconsistent or invalid encodings.Daniel Dunbar2013-08-142-12/+48
| | | | | | | | | | | | - For whatever reason, we have a lot of test files with bogus unicode characters. This patch allows those scripts to still be parsed on Python3 by changing the parsing logic to work on binary files, and only require the actual script commands to be convertible to ascii. - This patch has been tweaked to now ensure that the command strings are not of unicode type on Python 2.6-7. llvm-svn: 188398
* Use the MSVC __cpuid intrinsic instead of inline asmReid Kleckner2013-08-141-31/+14
| | | | | | This works around PR16830 in LLVM when self-hosting clang on Windows. llvm-svn: 188397
* Xing Xue: port to IBM XLC++/AIX.Howard Hinnant2013-08-1418-47/+605
| | | | llvm-svn: 188396
* Fix signed/unsigned warnings when building libc++ in C++14 modeMarshall Clow2013-08-141-3/+3
| | | | llvm-svn: 188395
* cpp11-migrate: Fixing doxygen warningsTareq A. Siraj2013-08-142-3/+4
| | | | | | | | | | | | | For some reason doxygen doesn't seem to like the using namespace clang::tooling in the source file and complaints about missing class members. Also fixed missing parameter documentation for TransformName in SourceOverrides::applyReplacements(). Differential Revision: http://llvm-reviews.chandlerc.com/D1400 llvm-svn: 188394
* Remove unnecessary parameter to RenumberValues.Jakob Stoklund Olesen2013-08-144-4/+4
| | | | | | Patch by Matthias Braun! llvm-svn: 188393
* Remove unused function.Jakob Stoklund Olesen2013-08-141-7/+0
| | | | | | Patch by Matthias Braun! llvm-svn: 188392
* Improve misleading comment.Jakob Stoklund Olesen2013-08-141-1/+1
| | | | | | Patch by Matthias Braun! llvm-svn: 188391
* Remove declaration of nonexistant function.Jakob Stoklund Olesen2013-08-141-4/+0
| | | | | | Patch by Matthias Braun! llvm-svn: 188390
* LiveIntervalUnion is not used in RegAllocBase.Jakob Stoklund Olesen2013-08-141-1/+1
| | | | | | Patch by Matthias Braun! llvm-svn: 188389
* Remove unused struct/enumJakob Stoklund Olesen2013-08-141-11/+0
| | | | | | Patch by Matthias Braun! llvm-svn: 188388
* Added some missing issues to the c++1y status page, and put in hyperlinks ↵Howard Hinnant2013-08-141-22/+42
| | | | | | for the papers. llvm-svn: 188387
* llvm-symbolizer: add support for .gnu_debuglink sectionAlexey Samsonov2013-08-143-0/+87
| | | | llvm-svn: 188386
* Let t2LDRBi8 and t2LDRBi12 have same Base PointerRenato Golin2013-08-142-1/+78
| | | | | | | | | | | | | | When determining if two different loads are from the same base address, this patch allows one load to use a t2LDRi8 address mode and another to use a t2LDRi12 address mode. The current implementation is very conservative and this allows the case of differing Thumb2 byte loads to be considered. Allowing these differing modes instead of forcing the exact same opcode is useful for situations where one opcodes loads from a base address+1 and a second opcode loads for a base address-1. Patch by Daniel Stewart. llvm-svn: 188385
* [tests] Reapply r188354, ensure subsitution string is ascii.Daniel Dunbar2013-08-141-1/+2
| | | | | | - Now fixed to ensure substitution value isn't of unicode type on Python 2.6-7. llvm-svn: 188384
* remove CWG papers from list; add link to clang status pageMarshall Clow2013-08-141-14/+14
| | | | llvm-svn: 188383
* Sphinx refuses to render this code block. Try adding a newline.Benjamin Kramer2013-08-141-0/+1
| | | | llvm-svn: 188382
* Added CWG and SG1 papers to libc++ status pageMarshall Clow2013-08-141-24/+51
| | | | llvm-svn: 188381
* Expose CRC-32 implementation from zlibAlexey Samsonov2013-08-143-0/+15
| | | | llvm-svn: 188380
* Revert r188376, "[lit] Support parsing scripts with inconsistent or invalid ↵Daniel Dunbar2013-08-142-45/+12
| | | | | | encodings.", this doesn't work yet for bots using the internal shell. llvm-svn: 188379
* Mark LWG Issue #2110 and #2113 as completed - they were already doneMarshall Clow2013-08-141-2/+2
| | | | llvm-svn: 188378
* Add the C99 hex-float assembly syntax to our extension document.Tim Northover2013-08-141-0/+13
| | | | | | | As Ben pointed out, GAS doesn't support this syntax so we should give at least some warning that it might not be portable. llvm-svn: 188377
* [lit] Support parsing scripts with inconsistent or invalid encodings.Daniel Dunbar2013-08-142-12/+45
| | | | | | | | | - For whatever reason, we have a lot of test files with bogus unicode characters. This patch allows those scripts to still be parsed on Python3 by changing the parsing logic to work on binary files, and only require the actual script commands to be convertible to ascii. llvm-svn: 188376
* Add a deleted assignment operator for basic_ostream; LWG Issue #2067Marshall Clow2013-08-142-1/+5
| | | | llvm-svn: 188375
* cpp11-migrate: Fix silly logic error preventing multiple transformsEdwin Vane2013-08-141-1/+2
| | | | | | | A missed clause in an error test added in r188371 caused any use of the migrator requesting multiple transforms to fail. llvm-svn: 188374
* Revert r188354, "[tests] Ensure subsitution string is ascii."NAKAMURA Takumi2013-08-141-1/+1
| | | | | | It caused "shell parser error" on win32 internal shell. ShParser doesn't expect unicode, but str. llvm-svn: 188373
* Add test-case for hex floating-literalsTim Northover2013-08-141-0/+3
| | | | | | Somehow I forgot to test one of the error conditions I'd added. llvm-svn: 188372
* cpp11-migrate: Adding -yaml-only optionEdwin Vane2013-08-142-39/+53
| | | | | | | | | | | For use with -headers, -yaml-only will cause cpp11-migrate to not write header changes to disk and instead write them as header change description files. This option facilitiates upcoming functionality to properly support changing headers as part of migration. Differential Revision: http://llvm-reviews.chandlerc.com/D1385 llvm-svn: 188371
* Support C99 hexadecimal floating-point literals in assemblyTim Northover2013-08-143-2/+90
| | | | | | | | It's useful to be able to write down floating-point numbers without having to worry about what they'll be rounded to (as C99 discovered), this extends that ability to the MC assembly parsers. llvm-svn: 188370
* [sanitizer] Split platform_limits_posix into system- and kernel-dependent parts.Evgeniy Stepanov2013-08-145-505/+531
| | | | | | | | | | | | This change moves everything depending on kernel headers (mostly ioctl types and ids) into a separate source file. This will reduce the possibility of header conflict on various platforms (most importantly, older glibc versions). This change also removes 2 deprecated ioctls, and symbolic ids for other bunch of ambiguous ioctls (i.e. same id is shared by ioctls with different memory behavior). llvm-svn: 188369
* \param is not for referring to arguments.Benjamin Kramer2013-08-141-1/+1
| | | | | | Found by -Wdocumentation. llvm-svn: 188368
* Fix a really terrifying but improbable bug in mem2reg. If you have seenChandler Carruth2013-08-141-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | extremely subtle miscompilations (such as a load getting replaced with the value stored *below* the load within a basic block) related to promoting an alloca to an SSA value, there is the dim possibility that you hit this. Please let me know if you won this unfortunate lottery. The first half of mem2reg's core logic (as it is used both in the standalone mem2reg pass and in SROA) builds up a mapping from 'Instruction *' to the index of that instruction within its basic block. This allows quickly establishing which store dominate a particular load even for large basic blocks. We cache this information throughout the run of mem2reg over a function in order to amortize the cost of computing it. This is not in and of itself a strange pattern in LLVM. However, it introduces a very important constraint: absolutely no instruction can be deleted from the program without updating the mapping. Otherwise a newly allocated instruction might get the same pointer address, and then end up with a wrong index. Yes, LLVM routinely suffers from a *single threaded* variant of the ABA problem. Most places in LLVM don't find avoiding this an imposition because they don't both delete and create new instructions iteratively, but mem2reg *loves* to do this... All the time. Fortunately, the mem2reg code was really careful about updating this cache to handle this eventuallity... except when it comes to the debug declare intrinsic. Oops. The fix is to invalidate that pointer in the cache when we delete it, the same as we do when deleting alloca instructions and other instructions. I've also caused the same bug in new code while working on a fix to PR16867, so this seems to be a really unfortunate pattern. Hopefully in subsequent patches the deletion of dead instructions can be consolidated sufficiently to make it less likely that we'll see future occurences of this bug. Sorry for not having a test case, but I have literally no idea how to reliably trigger this kind of thing. It may be single-threaded, but it remains an ABA problem. It would require a really amazing number of stars to align. llvm-svn: 188367
* Make more helper methods into static functions.Craig Topper2013-08-142-17/+17
| | | | llvm-svn: 188366
* Remove tab characters.Craig Topper2013-08-141-1/+1
| | | | llvm-svn: 188365
* Make some helper methods static.Craig Topper2013-08-142-34/+27
| | | | llvm-svn: 188364
* Use MVT in more lowering code.Craig Topper2013-08-141-6/+6
| | | | llvm-svn: 188363
* Replace EVT with MVT in isVectorShift. Keeps compiler from generating ↵Craig Topper2013-08-141-3/+5
| | | | | | unneeded checks and handling for extended types. llvm-svn: 188362
* Replace EVT with MVT in many of the shuffle lowering functions. Keeps ↵Craig Topper2013-08-141-37/+46
| | | | | | compiler from generating unneeded checks and handling for extended types. llvm-svn: 188361
* [lit] Fix a relative import issue I missed earlier.Daniel Dunbar2013-08-141-2/+4
| | | | llvm-svn: 188360
* [lit] Avoid StringIO.Daniel Dunbar2013-08-141-19/+25
| | | | | | | - We barely used it, and it is very hard to use in a 2.5-3 compatible way because of changing expectations for its input types. llvm-svn: 188359
OpenPOWER on IntegriCloud