summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* add CHECK-LABELs for more reliable testingSanjay Patel2015-03-161-0/+6
| | | | llvm-svn: 232391
* Don't attempt to validate the output of %p.Ed Schouten2015-03-161-12/+21
| | | | | | | | | | | | | In one of the ostream tests we attempt to validate whether the output of %p is correct. This is actually outside the scope of libc++, for the %reason that the format of %p is implementation defined. Change the test %to validate that the output of %p is non-empty and is different when %given two unequal addresses. Differential Revision: http://reviews.llvm.org/D8354 Reviewed by: marshall llvm-svn: 232390
* Global inline assembler blocks are merged before parsing, so no specificJoerg Sonnenberger2015-03-162-14/+30
| | | | | | | | | | | | | location data is available. If pragma handling wants to look up the position, it finds the LLVM buffer and wants to compare it with the special built-in buffer, failing badly. Extend to the special handling of the built-in buffer to also check for the inline asm buffer. Expect only a single asm buffer. Sort it between the built-in buffers and the normal file buffers. Fixes the assert part of PR 22576. llvm-svn: 232389
* Fix doxygen comments from r232268Duncan P. N. Exon Smith2015-03-162-16/+16
| | | | llvm-svn: 232388
* fixed to test feature, not CPU; removed unnecessary declarationSanjay Patel2015-03-161-2/+1
| | | | llvm-svn: 232387
* R600/SI: don't try min3/max3/med3 with f64Tom Stellard2015-03-162-0/+25
| | | | | | | | | | There are no opcodes for this. This also adds a test case. v2: make test more robust Patch by: Grigori Goronzy llvm-svn: 232386
* fix comments to match code; NFCSanjay Patel2015-03-161-3/+3
| | | | llvm-svn: 232385
* Fix a problem when calling throw_with_nested with a class marked 'final'. ↵Marshall Clow2015-03-162-0/+22
| | | | | | Thanks to STL @ Microsoft for the bug report. llvm-svn: 232384
* Don't hardcode the Czech locale name.Ed Schouten2015-03-1611-30/+44
| | | | | | | | | | | | We already have a definition for the Czech locale name in platform_support.h. Use this one instead. While there, respect the common format of the tests. For most other tests it's the case that test_iterators.h is placed right underneath the other #includes (without an empty line). platform_support.h is included after an empty line. llvm-svn: 232383
* [MIPS] Fix justify error for small structuresPetar Jovanovic2015-03-162-1/+81
| | | | | | | | | | | | | | | Fix justify error for small structures bigger than 32 bits in fixed arguments for MIPS64 big endian. There was a problem when small structures are passed as fixed arguments. The structures that are bigger than 32 bits but smaller than 64 bits were not left justified properly on MIPS64 big endian. This is fixed by shifting the value to make it left justified when appropriate. Patch by Aleksandar Beserminji. Differential Revision: http://reviews.llvm.org/D8174 llvm-svn: 232382
* [Tsan] Do not sanitize memcpy() during thread initialization on FreeBSDViktor Kutuzov2015-03-164-5/+10
| | | | | | Differential Revision: http://reviews.llvm.org/D8324 llvm-svn: 232381
* Enabling the lldb-mi tests on Linux.Hafiz Abid Qadeer2015-03-165-24/+0
| | | | | | | | | I think the issue that caused the random failure has been fixed. So I am enabling the tests again on Linux. There are still some tests that are skipped on Linux due to different output. Those will be handled separately. Tested with dotest.py and with "make check-lldb" and there was no MI related failure. llvm-svn: 232380
* Make *abs() and *div() work on CloudABI.Ed Schouten2015-03-162-0/+8
| | | | | | | | According to POSIX, *abs() and *div() are allowed to be macros (in addition to being functions). Make sure we undefine these, so that std::*abs() and std::*div() work as expected. llvm-svn: 232379
* Use the i8 immediate cmp instructions when possible.Rafael Espindola2015-03-164-7/+59
| | | | llvm-svn: 232378
* [ASan] NFC: Factor out platform-specific interceptorsTimur Iskhodzhanov2015-03-166-126/+130
| | | | | | Reviewed at http://reviews.llvm.org/D8321 llvm-svn: 232377
* Revert r232374: [hexagon] Distinguish the 'o', 'v', and 'm' inline assembly ↵Daniel Sanders2015-03-163-10/+7
| | | | | | | | memory constraints. 2007-12-17-InvokeAsm.ll fails on the buildbot but not on my own system. Will investigate. llvm-svn: 232376
* Don't repeat names in comments and clang-format this function.Rafael Espindola2015-03-161-7/+10
| | | | llvm-svn: 232375
* [hexagon] Distinguish the 'o', 'v', and 'm' inline assembly memory constraints.Daniel Sanders2015-03-163-7/+10
| | | | | | | | | | | | | | | | | | Summary: But still handle them the same way since I don't know how they differ on this target. No functional change intended. Reviewers: kparzysz, adasgupt Reviewed By: kparzysz, adasgupt Subscribers: colinl, llvm-commits Differential Revision: http://reviews.llvm.org/D8204 llvm-svn: 232374
* Make each target map all inline assembly memory constraints to ↵Daniel Sanders2015-03-1612-3/+70
| | | | | | | | | | | | | | | | | | | InlineAsm::Constraint_m. NFC. Summary: This is instead of doing this in target independent code and is the last non-functional change before targets begin to distinguish between different memory constraints when selecting code for the ISD::INLINEASM node. Next, each target will individually move away from the idea that all memory constraints behave like 'm'. Subscribers: jholewinski, llvm-commits Differential Revision: http://reviews.llvm.org/D8173 llvm-svn: 232373
* Fix the test for gcc.Hafiz Abid Qadeer2015-03-161-9/+9
| | | | | | | | | | | | | Following 3 changes were made. 1. Test was assuming that function name will have () in the end. I dont know why lldb is generating function name like this but it looks like a bug. For this test, I have removed it. 2. Step instruction test was assuming that function call will not be the first instruction in the range of the line. This assumption failed with gcc. So I had fixed this. 3. Some minor adjustments with the line number. Test with bot gcc and clang and all tests pass. This test is still very fragile. We should be removing hardcoded line number. llvm-svn: 232372
* [mips] [IAS] Outline NOP creation. NFC.Toma Tabacu2015-03-161-22/+26
| | | | | | | | | | | | | | Summary: Make the code more readable by outlining NOP creation. Reviewers: dsanders Reviewed By: dsanders Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D8320 llvm-svn: 232371
* Check that RestartedFromEvent flag before processing the state changed event.Hafiz Abid Qadeer2015-03-161-0/+2
| | | | | | | | | | Not checking for this flags caused lldb-mi to issue stop notification when target has started running again. It also tried to get stack when target was running and this caused randon failure. Approved in http://lists.cs.uiuc.edu/pipermail/lldb-dev/2015-March/006953.html llvm-svn: 232370
* Fix build failure on MSVC compilers.Gabor Horvath2015-03-161-3/+2
| | | | llvm-svn: 232368
* [clang] Replacing asserts with static_asserts where appropriateGabor Horvath2015-03-161-3/+4
| | | | | | | | | | | | | | Summary: This patch consists of the suggestions of clang-tidy/misc-static-assert check. Reviewers: alexfh Subscribers: dblaikie, xazax.hun, cfe-commits Differential Revision: http://reviews.llvm.org/D8344 Patch by Szabolcs Sipos! llvm-svn: 232367
* [llvm] Replacing asserts with static_asserts where appropriateGabor Horvath2015-03-168-9/+17
| | | | | | | | | | | | | | | | Summary: This patch consists of the suggestions of clang-tidy/misc-static-assert check. Reviewers: alexfh Reviewed By: alexfh Subscribers: xazax.hun, llvm-commits Differential Revision: http://reviews.llvm.org/D8343 llvm-svn: 232366
* Don't hardcode the locale name string.Ed Schouten2015-03-161-1/+2
| | | | | | | | The rest of the test uses the #defines for the locale names properly. In this single spot we do hardcode the string. This causes this test to fail on CloudABI, where this locale is called en_US.UTF-8@UTC. llvm-svn: 232365
* [Mips] clang-format the codeSimon Atanasyan2015-03-161-3/+2
| | | | | | No functional changes. llvm-svn: 232364
* [Mips] Do not check the relocation type twiceSimon Atanasyan2015-03-161-10/+6
| | | | | | No functional changes. llvm-svn: 232363
* [Mips] Add `const` qualifier to some member functionsSimon Atanasyan2015-03-161-23/+23
| | | | | | No functional changes. llvm-svn: 232362
* [Mips] Implement R_MIPS_TLS_xxx relocation handling in case of N64 ABISimon Atanasyan2015-03-167-13/+188
| | | | llvm-svn: 232361
* [Mips] Implement R_MIPS_GOT_DISP/PAGE/OFST relocations handlingSimon Atanasyan2015-03-168-29/+507
| | | | llvm-svn: 232360
* [Mips] Group some cases in the switch statementSimon Atanasyan2015-03-161-9/+6
| | | | | | No functional changes. llvm-svn: 232359
* asan: fix overflows in isSafeAccessDmitry Vyukov2015-03-161-3/+3
| | | | | | | | | As pointed out in http://reviews.llvm.org/D7583 The current checks can cause overflows when object size/access offset cross Quintillion bytes. http://reviews.llvm.org/D8193 llvm-svn: 232358
* One more try with unused.Michael Gottesman2015-03-161-1/+2
| | | | llvm-svn: 232357
* Add in an unreachable after a covered switch to appease certain bots.Michael Gottesman2015-03-161-0/+1
| | | | llvm-svn: 232356
* Remove a used that snuck in that seems to be triggering the MSVC buildbots.Michael Gottesman2015-03-161-2/+1
| | | | llvm-svn: 232355
* InstrProf: Remove xfails for big-endian from coverage testsJustin Bogner2015-03-168-24/+0
| | | | | | | | | This still doesn't actually work correctly for big endian input files, but since these tests all use little endian input files they don't actually fail. I'll be committing a real fix for big endian soon, but I don't have proper tests for it yet. llvm-svn: 232354
* [OPENMP] Enable codegen of the ‘private’ clause for ‘omp simd’ directiveAlexander Musman2015-03-162-7/+27
| | | | llvm-svn: 232353
* [objc-arc] Fix indentation of debug logging so it is easy to read the output.Michael Gottesman2015-03-163-19/+101
| | | | llvm-svn: 232352
* [objc-arc] Make the ARC optimizer more conservative by forcing it to be ↵Michael Gottesman2015-03-164-68/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | non-safe in both direction, but mitigate the problem by noting that we just care if there was a further use. The problem here is the infamous one direction known safe. I was hesitant to turn it off before b/c of the potential for regressions without an actual bug from users hitting the problem. This is that bug ; ). The main performance impact of having known safe in both directions is that often times it is very difficult to find two releases without a use in-between them since we are so conservative with determining potential uses. The one direction known safe gets around that problem by taking advantage of many situations where we have two retains in a row, allowing us to avoid that problem. That being said, the one direction known safe is unsafe. Consider the following situation: retain(x) retain(x) call(x) call(x) release(x) Then we know the following about the reference count of x: // rc(x) == N (for some N). retain(x) // rc(x) == N+1 retain(x) // rc(x) == N+2 call A(x) call B(x) // rc(x) >= 1 (since we can not release a deallocated pointer). release(x) // rc(x) >= 0 That is all the information that we can know statically. That means that we know that A(x), B(x) together can release (x) at most N+1 times. Lets say that we remove the inner retain, release pair. // rc(x) == N (for some N). retain(x) // rc(x) == N+1 call A(x) call B(x) // rc(x) >= 1 release(x) // rc(x) >= 0 We knew before that A(x), B(x) could release x up to N+1 times meaning that rc(x) may be zero at the release(x). That is not safe. On the other hand, consider the following situation where we have a must use of release(x) that x must be kept alive for after the release(x)**. Then we know that: // rc(x) == N (for some N). retain(x) // rc(x) == N+1 retain(x) // rc(x) == N+2 call A(x) call B(x) // rc(x) >= 2 (since we know that we are going to release x and that that release can not be the last use of x). release(x) // rc(x) >= 1 (since we can not deallocate the pointer since we have a must use after x). … // rc(x) >= 1 use(x) Thus we know that statically the calls to A(x), B(x) can together only release rc(x) N times. Thus if we remove the inner retain, release pair: // rc(x) == N (for some N). retain(x) // rc(x) == N+1 call A(x) call B(x) // rc(x) >= 1 … // rc(x) >= 1 use(x) We are still safe unless in the final … there are unbalanced retains, releases which would have caused the program to blow up anyways even before optimization occurred. The simplest form of must use is an additional release that has not been paired up with any retain (if we had paired the release with a retain and removed it we would not have the additional use). This fits nicely into the ARC framework since basically what you do is say that given any nested releases regardless of what is in between, the inner release is known safe. This enables us to get back the lost performance. <rdar://problem/19023795> llvm-svn: 232351
* [objc-arc] Treat memcpy, memove, memset as just using pointers, not ↵Michael Gottesman2015-03-161-34/+62
| | | | | | | | | decrementing them. This will be tested in the next commit (which required it). The commit is going to update a bunch of tests at the same time. llvm-svn: 232350
* [objc-arc] Rename ConnectTDBUTraversals => PairUpRetainsReleases.Michael Gottesman2015-03-161-15/+15
| | | | | | This is a name that is more descriptive of what the method really does. NFC. llvm-svn: 232349
* [objc-arc] Move initialization of ARCMDKindCache into the class itself. I ↵Michael Gottesman2015-03-166-21/+54
| | | | | | also made it lazy. llvm-svn: 232348
* [objc-arc] Change EntryPointType to an enum class outside of ↵Michael Gottesman2015-03-163-34/+34
| | | | | | ARCRuntimeEntryPoints called ARCRuntimeEntryPointKind. llvm-svn: 232347
* InstrProf: Do a better job of reading coverage mapping data.Justin Bogner2015-03-167-65/+59
| | | | | | | | | | | | | | | | | | | | | | This code was casting regions of a memory buffer to a couple of different structs. This is wrong in a few ways: 1. It breaks aliasing rules. 2. If the buffer isn't aligned, it hits undefined behaviour. 3. It completely ignores endianness differences. 4. The structs being defined for this aren't specifying their padding properly, so this doesn't even represent the data properly on some platforms. This commit is mostly NFC, except that it fixes reading coverage for 32 bit binaries as a side effect of getting rid of the mispadded structs. I've included a test for that. I've also baked in that we only handle little endian more explicitly, since that was true in practice already. I'll fix this to handle endianness properly in a followup commit. llvm-svn: 232346
* Added nullptr to fix buildVince Harron2015-03-161-2/+3
| | | | llvm-svn: 232345
* And one more empty directory.Alexander Kornienko2015-03-160-0/+0
| | | | llvm-svn: 232344
* Remove an empty directory.Alexander Kornienko2015-03-160-0/+0
| | | | llvm-svn: 232343
* [dsymutil] Add support to generate .debug_pubnames and .debug_pubtypesFrederic Riss2015-03-164-4/+279
| | | | | | | | The information gathering part of the patch stores a bit more information than what is strictly necessary for these 2 sections. The rest will become useful when we start emitting __apple_* type accelerator tables. llvm-svn: 232342
* [ELF][ARM] Make gotSymbol a member.Shankar Easwaran2015-03-161-9/+5
| | | | | | | | | | | The gotSymbol need not be a global static variable. Apart from this reason, This variable was creating an issue with self hosting lld, as there seems to be an issue running global initializers, when initializing the guard for this static variable. Program received signal SIGTRAP, Trace/breakpoint trap. llvm-svn: 232341
OpenPOWER on IntegriCloud